PDA

View Full Version : سوال: انتخاب فقط يك CheckBox در مجموعه CheckBox ها



iman65
پنج شنبه 13 خرداد 1389, 00:24 صبح
با سلام خدمت دوستان عزیز
یک راهنمایی میخواستم و اگه ممکنه کمک کنید کامل کنم:
من یک کد دارم مثل زیر که سه تا باکس تو یک ردیف هست که می تونیم تیک بزنیم
مثل این عکس:

http://www.gol90.com/box.jpg
میخوام طوری تغییر بدم کد رو که تو هر ردیف فقط یک باکس بتونه تیک بخوره
مثل این عکس دقیقا:

http://www.gol90.com/box.gif
مثلا اگه تو ردیفمون ما باکس اولی رو تیک زدیم اتوماتیک دومی و سومی خالی شن و اگه دومی رو تیک زدیم اتوماتیک اولی و سومی بدون تیک بشن
کلا تو هر ردیف فقط قابلیت تیک برای یک باکس باشه
الان هر 3 تا باکس تیک می خورن
کد :


<td align="center" valign="middle" width="40px">
<input type="checkbox" style="border:0px;" name="winner[]" id="dwinner<?echo $i;?>" onclick="return CheckBoxClick();"
></td>
<td align="center" width="40px">

<input type="checkbox" style="border:0px;" name="equal[]" id="dequal<?echo $i;?>" onclick="return CheckBoxClick();"
></td>
<td align="center" valign="middle" width="40px">
<input type="checkbox" style="border:0px;" name="loser[]" id="dloser<?echo $i;?>" onclick="return CheckBoxClick();">
</td>

تشکر از دوستان

Peyman.Gh
پنج شنبه 13 خرداد 1389, 00:29 صبح
دوست عزیز کد شما PHP میباشد ؟!

<?echo $i;?>"
اینجا تالار ASP.NET میباشد.

ali_zzr
پنج شنبه 13 خرداد 1389, 02:21 صبح
حالا اگه اشتباه اومدی نا امید برنگرد :
این کارو با javascript میتونی انجام بدی:
به عنوان مثال :
سه تا چک باکس به صورت زیر داری :


<div id="mydiv">
<input name="chk1" type="checkbox" id="chk1" value="mychk" onclick="if(this.checked){check(this.id)}" />
<input name="chk1" type="checkbox" id="chk2" value="mychk" onclick="if(this.checked){check(this.id)}" />
<input name="chk1" type="checkbox" id="chk3" value="mychk" onclick="if(this.checked){check(this.id)}" />
</div>

اینم کد جاوا اسکریپتش :


<script type="text/javascript">
function check(id){
var i = document.getElementById("mydiv").getElementsByTagName("input").length
for (z=0;z<=i-1;z++)
{
if (document.getElementById("mydiv").getElementsByTagName("input").item(z).id!=id){
document.getElementById("mydiv").getElementsByTagName("input").item(z).checked=false;
}
}
}
</script>

iman65
پنج شنبه 13 خرداد 1389, 16:47 عصر
دوست عزیز کد شما PHP میباشد ؟!

<?echo $i;?>"
اینجا تالار ASP.NET میباشد.

چه ربطی داره دوست عزیز ؟
تو این همه کد شما یک خط بالا و پایین رو دیدید ؟
دستورات این قسمت تو همه زبونا که یکی هستند
از دوست عزیزی که پاسخ دادن هم خیلی ممنونم

salehbagheri
پنج شنبه 13 خرداد 1389, 20:12 عصر
ببخشيد فكر كنم Radio Button ها رو بخاطر همين ساختند كه مشكل شما حل بشه!

اگه دليل خاص و قانع كننده اي براي استفاده از CheckBox نداريد ميتونيد از RadioButton ها استفاده كنيد.

Mostafa_Dindar
پنج شنبه 13 خرداد 1389, 21:01 عصر
همانطور كه salehbagheri (http://barnamenevis.org/forum/member.php?u=39960) اشاره كردند ، بايد از RadioButtonList استفاده كنيد .

Peyman.Gh
جمعه 14 خرداد 1389, 01:13 صبح
میتوان از RadioButton هم استفاده کرد و GroupName آن ها را مساوی هم قرار داد.




<asp:RadioButton ID="RadioButton1" runat="server" GroupName="Test" />
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="Test" />

iman65
جمعه 14 خرداد 1389, 09:25 صبح
یک راهنمایی
من کد زیر رو برای چک باکس درست کردم ولی یک مشکل کوچیک داره که ممنون میشم کمک کنید
وقتی چک باکس ها رو از سمت چپ به راست کلیک کنیم درست کار می کنن مثل شکل زیر :

http://www.gol90.com/c1.gif
ولی وقتی از سمت راست به چپ کلیک کنیم کار نمی کنه

http://www.gol90.com/c2.gif



function CheckBoxClickTak()
{

var sum=1;
var partialsum=0;
var HiddenField1 = document.userform.elements["ld1"];
if(HiddenField1)
{ var RowCount=HiddenField1.value
for (var i=0;i<=RowCount;i++)
{
if (document.userform.elements["dwinner"+i].checked){
partialsum++;
document.userform.elements["dequal"+i].checked = false;
document.userform.elements["dloser"+i].checked = false;
}
if (document.userform.elements["dequal"+i].checked){
partialsum++;
document.userform.elements["dwinner"+i].checked = false;
document.userform.elements["dloser"+i].checked = false;
}
if (document.userform.elements["dloser"+i].checked){
partialsum++;
document.userform.elements["dwinner"+i].checked = false;
document.userform.elements["dequal"+i].checked = false;
}
if(partialsum==0)
partialsum=1;
sum*=partialsum;
partialsum=0;

}

// winnerdow.alert("sum:"+sum);
document.userform.txtCost.value=sum*document.getEl ementById("ld2").value;
document.userform.Cost.value=sum*document.getEleme ntById("ld2").value;
//if(document.userform.txtCost.value>10240)
//document.userform.txtCost.value=10240;
}
}

</script>

ممنون میشم کمک کنید که این مشکل حل بشه.
تشکر

Vahid_moghaddam
جمعه 14 خرداد 1389, 09:49 صبح
با استفاده از jQuery به صورت زیر:


<input type="checkbox" class='chb'/>
<input type="checkbox" class='chb'/>
<input type="checkbox" class='chb'/>
<input type="checkbox" class='chb'/>

و


<script>
$(document).ready(function() {
$('.chb').bind('click', function() {
$('.chb').attr('checked', false);
$(this).attr('checked', true);


});
});

</script>