PDA

View Full Version : فعال و غیر فعال کردن یک کنترل پس انتخاب کنترلی دیگر



mohammad_kazem
سه شنبه 31 خرداد 1390, 04:36 صبح
سلام دوستان
چندتا radiobutton دارم که میخوام بعد از اینکه کاربر هر کدوم ازینها رو انتخاب کرد یک textbox و یک lable فعال بشن
وقتی گزینه دیگری از radio button ها انتخاب شد textbox و lable دیگه ای فعال شن و قبلیا غیر فعال .
یه کارایی کردم ولی چون js بلد نیستم و دقیقا نمیدونم باید کجای فرمم ازشون استفاده کنم کارم راه نمیفته.
راستی فکر کنم سینتکسش رو هم اشتباه مینویسم
ممنون میشم اگه بطور کامل راهنماییم کنید
با تشکر

Spring_64
سه شنبه 31 خرداد 1390, 09:05 صبح
سلام برای اضافه کردن فایل 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
سه شنبه 31 خرداد 1390, 11:02 صبح
دوست عزیز سلام
خیلی ممنون از لطفتون ولی بازم درست نشد
برای یک حالت خیلی ساده که یک چک باکس ، یک لیبل و یک تکست باکس داریم میشه محبت کنید و توضیح بدید که چطوری با تیک زدن چک باکس اون دوتای دیگه فعال میشن؟ و با برداشتن تیک دوباره غیرفعال میشن؟
ممنونم
یه چیز فرضی مثل این رو درنظر بگیرید:



<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
سه شنبه 31 خرداد 1390, 12:00 عصر
سلام
ببینید شما فقط کافیه با خاصی visible کنترل هات کار کنی
اول وقتی فرم شما لود میشه کنترل هایی که میخواید غیرفعال باشه مثلا lable: بنویسید lable1.visible=false;
و اما وفتی روی button کلیک کردید : lable1.visible=true
البته خاصیت visible کلا زمان اجرا برات کنترل رو نشون نمیده ولی اگر شما میخواید کنترل باشه فقط غیرفعال باشه پس خاصیت Enable رو true یا false کن
امیدوارم جواب گرفته باشی

Spring_64
سه شنبه 31 خرداد 1390, 13:27 عصر
<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
چهارشنبه 01 تیر 1390, 12:38 عصر
سلام
ببینید شما فقط کافیه با خاصی visible کنترل هات کار کنی
اول وقتی فرم شما لود میشه کنترل هایی که میخواید غیرفعال باشه مثلا lable: بنویسید lable1.visible=false;
و اما وفتی روی button کلیک کردید : lable1.visible=true
البته خاصیت visible کلا زمان اجرا برات کنترل رو نشون نمیده ولی اگر شما میخواید کنترل باشه فقط غیرفعال باشه پس خاصیت Enable رو true یا false کن
امیدوارم جواب گرفته باشی
دوست عزیزم سلام
حرف شما درسته ولی من میخوام با jquery این عمل رو انجام بدم . یعنی قبل از زدن button این کارها صورت بگیره. در حقیقت اینجوری از یه پست بک بی مورد جلوگیری میشه.
بازم از راهنماییتون ممنونم.

Spring_64 (http://barnamenevis.org/member.php?99451-Spring_64) عزیز سلام، مرسی از صبر و حوصلتون من دوباره میرم ببینم چیکار میتونم بکنم . اگه بازم نشد حتما برمیگردم. امیدوارم بازم صبور باشید و منو راهنمایی کنید.

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

mohammad_kazem
شنبه 04 تیر 1390, 08:47 صبح
سلام بچه ها
چی شد ؟کم پیدایین؟
نکنه تابستون شده همه یه دفه رفتن مسافرت.
به هرحال ممنون میشم اگه کسی بتوه کمکم کنه.

Spring_64
یک شنبه 05 تیر 1390, 11:44 صبح
سلام
براتون حالت ساده ای از چیزیکه مد نظرتون هست رو گذاشتم اما روش های دیگه مثل استفاده از خاصیت 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
یک شنبه 05 تیر 1390, 20:24 عصر
سلام
براتون حالت ساده ای از چیزیکه مد نظرتون هست رو گذاشتم اما روش های دیگه مثل استفاده از خاصیت append در jquery هم وجود داره یا حتی بهینه تر کردن تابع زیر. اگر کمی جستجو کنید حتما موارد مشابه رو پیدا خواهید کرد.
موفق باشید.

[/

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