PDA

View Full Version : مبتدی: اخطار برای سطر انتخاب نشده



badrang
چهارشنبه 27 فروردین 1393, 12:35 عصر
سلام
من یه جدول دارم که به صورت داینامیک سطر بهش اضافه میشه
یه دکمه ی محاسبه هم دارم که وقتی این دکمه کلیک شد ستونهای مربوط به سطر انتخاب شده مقدارشون حساب میشه
حالا میخوام وقتی کاربر دکمه ی محاسبه رو زد و هواسش نبود و هیچ سطری رو انتخاب نکرده بود پیغام بده که سطری انتخاب نشده در غیر اینصورت اگه حداقل یک سطر انتخاب شده بود محاسبات رو انجام بده

هر مدل کدی که به ذهنم رسید رو نوشتم،true یا false بودنشو چک کردم و شرط گذاشتم ولی به نتیجه نرسیدم
خیلی سرچ کردم تو همین انجمن هم راجع به چک باکس انتخاب شده/نشده بحث شده اما باز هم به نتیجه ای نرسیدم!

کدی که نوشتم اینه:

$(function(){
$('#btn-cube').click(function(){
$('#tbl input[type="checkbox"]:checked').each(function(){
var $row = $(this).parents('tr');
var txtval=$row.find('td:eq(4) input').val();
var result=$('input#txt-cube').val();

if($(this) && (txtval==''))
{
{alert($('input#txt-cube').val())}
if($('input#txt-cube').val('NaN'))
{$('input#txt-cube').val(0);}
}
else
var digit = txtval.replace(/,/gi,"");
$('input#txt-cube').val(parseFloat(digit)+parseFloat(result));
});
});
$(this).prop('checked',false);
});



در ضمن یه مشکل دیگه هم دارم که هر چقدر تلاش کردم به نتیجه نرسیدم اینکه وقتی یه سطر انتخاب میشه رنگ اون سطر تغییر کنه تا اینجا مشکلی ندارم مشکلم اینجاست که میخوام
وقتی تیک چک باکس اون سطر برداشته شد و اون سطر از حالت انتخاب خارج شد رنگش باز تغییر کنه
کدی که نوشتم اینه:

var t1=document.getElementById('tbl');
t1.onclick=function()
{
$('#tbl input[type="checkbox"]:checked').each(function(){
var row = $(this).parents('tr');
$(row).css('background','#CCC');
});
}



ممنون میشم کمکم کنید

jalil_gh
چهارشنبه 27 فروردین 1393, 22:53 عصر
ساختار html شما چطوریه؟؟

badrang
چهارشنبه 27 فروردین 1393, 23:33 عصر
ساختار html شما چطوریه؟؟
اینجا کپی کردم بهم ریخته شد ضمیمه کردم

plague
پنج شنبه 28 فروردین 1393, 15:02 عصر
هر وقت میخای ببینی چیزی موجود هست یا نه .length رو بگیر ازش اگه نباشه 0 برمیگردونه

if($('#tbl input[type="checkbox"]:checked').lenght == 0 )
{
alert(' هیچکدام انتخاب نشده');
return false;
}

در ضمن به چک باکس هات کلاس بده که راحت بتونی سلکتشون کنی و انقد طولانی نشه کدت مثلا کلاس check
برای تغییر رنگ هم رویداد change رو باید چک کنی بهتر از کلیک هستش

$('.check').change(function(){
if(this.checked)
$(this).parents('tr:first').css('background-color' , 'green');
else
$(this).parents('tr:first').css('background-color' , 'red');
})



چند مورد :
1 - اینا رو من همینجوری نوشتم چون الان محیطی ندارم که تست کنم و ممکنه اررور سینتکس داشته باشه مثلا اسپل چیزی رو اشتباه نوشته باشم
2 - اگه داینامیک اضافه میکنی داده ها رو رویداد ها مثل change عمل نخواهند کرد روی موارد جدیدی و باید از .on استفاده کنی یا live اگه وژنت قدیمیه
3 - در کد تغییر رنگ اونجا که نوشته parents('tr:first') فرض این بوده که از تیبل برای نمایش داده ها استفاده کردی من قالبت رو ندیدم و باید جای tr اون المنتی که هر چک باکس درش قرار داره رو بزاری