# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن > jQuery >  فعال و غیر فعال کردن یک کنترل پس انتخاب کنترلی دیگر

## mohammad_kazem

سلام دوستان
چندتا radiobutton دارم که میخوام بعد از اینکه کاربر هر کدوم ازینها رو انتخاب کرد یک textbox و یک lable فعال بشن
وقتی گزینه دیگری از radio button ها انتخاب شد textbox و lable دیگه ای فعال شن و قبلیا غیر فعال .
یه کارایی کردم ولی چون js بلد نیستم و دقیقا نمیدونم باید کجای فرمم ازشون استفاده کنم کارم راه نمیفته.
راستی فکر کنم سینتکسش رو هم اشتباه مینویسم
ممنون میشم اگه بطور کامل راهنماییم کنید
با تشکر

----------


## Spring_64

سلام برای اضافه کردن فایل js هم میتونید اون رو تو یه فایل مجزا بنویسید و بعد اون رو به پروژه لینک بدید(مثل فایلهای css) و یا در قسمت header یک تگ script باز کنید و کدها رو درون آن قرار بدید.

$(document).ready(function () {
$('#rbYes').click(function () {
$('input[id^="txtBox"]').each(function () {
$('input[id^="txtBox"]').attr('disabled', 'disabled');//غیر فعال کردن همه تگست باگس ها 
});
$('#txtBox1').attr('disabled', '');
$('#txtBox1').val('Hello');
});
$('#rbNo').click(function () {
$('#txtBox1').attr('disabled', 'disabled');//غیر فعال
$('#txtBox1').val('');
});
});

----------


## mohammad_kazem

دوست عزیز سلام
خیلی ممنون از لطفتون ولی بازم درست نشد
برای یک حالت خیلی ساده که یک چک باکس ، یک لیبل و یک تکست باکس داریم میشه محبت کنید و توضیح بدید که چطوری با تیک زدن چک باکس اون دوتای دیگه فعال میشن؟ و با برداشتن تیک دوباره غیرفعال میشن؟
ممنونم
یه چیز فرضی مثل این رو درنظر بگیرید:



```
<body>
    
    <form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="chbhello" runat="server" Text="سلام" />
    </div>
    <div>
        <asp:Label ID="lblhello" runat="server">سلام</asp:Label>
        <asp:TextBox ID="txthello" runat="server" Width="120px"></asp:TextBox>
    </div>
    </form>
</body>
```

----------


## nillofar67

سلام
ببینید   شما فقط کافیه با خاصی visible  کنترل هات کار کنی
اول وقتی فرم شما لود میشه کنترل هایی که میخواید غیرفعال باشه مثلا lable:  بنویسید lable1.visible=false;
و اما وفتی روی button  کلیک کردید :  lable1.visible=true
البته خاصیت visible کلا زمان اجرا برات کنترل رو نشون نمیده ولی اگر شما میخواید کنترل باشه فقط غیرفعال باشه پس خاصیت  Enable رو  true  یا  false کن
 امیدوارم جواب گرفته باشی

----------


## Spring_64

```
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Lock Test</title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var flag = 0;
$("#chbhello").click(function () {
if (flag == 0) {
$("#txthello").attr('disabled', 'disabled');
$("#lblhello").attr('disabled', true);
flag = 1;
}
else {
$("#txthello").attr('disabled', '');
$("#lblhello").attr('disabled', false);
flag = 0;
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBox ID="chbhello" runat="server" Text="سلام" />
</div>
<div>
<asp:Label ID="lblhello" runat="server">سلام</asp:Label>
<asp:TextBox ID="txthello" runat="server" Width="120px"></asp:TextBox>
</div>
</form>
</body>
</html>
```

البته فکر کنم لازم نیست یاداوری کنم که حتما "js/jquery.min.js" رو هم به صفحه تون لینک بدید.

----------


## mohammad_kazem

> سلام
> ببینید   شما فقط کافیه با خاصی visible  کنترل هات کار کنی
> اول وقتی فرم شما لود میشه کنترل هایی که میخواید غیرفعال باشه مثلا lable:  بنویسید lable1.visible=false;
> و اما وفتی روی button  کلیک کردید :  lable1.visible=true
> البته خاصیت visible کلا زمان اجرا برات کنترل رو نشون نمیده ولی اگر شما میخواید کنترل باشه فقط غیرفعال باشه پس خاصیت  Enable رو  true  یا  false کن
>  امیدوارم جواب گرفته باشی


دوست عزیزم سلام
حرف شما درسته ولی من میخوام با jquery این عمل رو انجام بدم . یعنی قبل از زدن button این کارها صورت بگیره. در حقیقت اینجوری از یه پست بک بی مورد جلوگیری میشه.
بازم از راهنماییتون ممنونم.

Spring_64 عزیز سلام، مرسی از صبر و حوصلتون من دوباره میرم ببینم چیکار میتونم بکنم . اگه بازم نشد حتما برمیگردم. امیدوارم بازم صبور باشید و منو راهنمایی کنید.

----------


## mohammad_kazem

سلام دوستان
چند روزی نتونستم بیام تو وب
به هر حال از لطفتون ممنونم. خیلی خوب کارم راه افتاد.
حالا میخوام به جای disabled از یه خاصیت دیگه استفاده کنم که بعد از انتخاب یک کنترل یک لیبل و تکست باکس که تا حالا مخفی بودن ، نشون داده بشن. ولی نمیدونم باید با چه ویژگی ای کار کنم. 
راستی اگه نشون داده بشن پر شدن اون تکست باکس الزامیه. اگه براش RequiredFieldValidator  بزارم که بد میشه چون ممکنه اون چک باکسه انتخاب نشده باشه (و در نتیجه این تکست باکسه هم مخفی باشه) ولی به کاربر خطای "لطفا تکست باکس را پر کنید" نشون داده بشه.
حالا میشه این پیغام رو هم با js به کاربر نشون بدیم یا باید پست بک اتفاق بیفته.
پیشاپیش از همه بچه های خوبی که لطف میکنن و جواب میدن متشکرم.

----------


## mohammad_kazem

سلام بچه ها
چی شد ؟کم پیدایین؟
نکنه تابستون شده همه یه دفه رفتن مسافرت.
به هرحال ممنون میشم اگه کسی بتوه کمکم کنه.

----------


## Spring_64

سلام 
براتون حالت ساده ای از چیزیکه مد نظرتون هست رو گذاشتم اما روش های دیگه مثل استفاده از خاصیت append در jquery هم وجود داره یا حتی بهینه تر کردن تابع زیر. اگر کمی جستجو کنید حتما موارد مشابه رو پیدا خواهید کرد.
موفق باشید.


```
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Lock Test</title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var flag = 0;
$("#chbhello").click(function () {
if (flag == 0) {
$("#txtName").css("display", "block");
$("#lblhello").css("display", "block");
flag = 1;
}
else {
$("#txtName").css("display", "none");
$("#lblhello").css("display", "none");
flag = 0;
}
});
$("#txtFamily").mousedown(function () {
if (flag == 1 && ($("#txtName").val()=="")) {
alert("فیلد نام بایستی پر شود");
}
});
}); 
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBox ID="chbhello" runat="server" Text="سلام" />
</div>
<div>
<asp:Label ID="lblhello" runat="server" Style="display: none">سلام</asp:Label>
نام<asp:TextBox ID="txtName" runat="server" Width="120px" Style="display: none"></asp:TextBox>
نام خانوادگی<asp:TextBox ID="txtFamily" runat="server" Width="120px"></asp:TextBox>
</div>
</form>
</body>
</html>
```

----------


## mohammad_kazem

> سلام 
> براتون حالت ساده ای از چیزیکه مد نظرتون هست رو گذاشتم اما روش های دیگه مثل استفاده از خاصیت append در jquery هم وجود داره یا حتی بهینه تر کردن تابع زیر. اگر کمی جستجو کنید حتما موارد مشابه رو پیدا خواهید کرد.
> موفق باشید.
> 
> [/


spring عزیز ممنون از محبتتون

----------

