รบกวนช่วยดู code ให้ด้วยครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนช่วยดู code ให้ด้วยครับ

รบกวนช่วยดู code ให้ด้วยครับ


<form name="form1" method="post" action="">

	<input type="checkbox" name="chk1" id="sex1" for='groupController1' value="1">
	<input type="checkbox" name="chk1" id="sex2" for='groupController1' value="2">
	<input type="text" name="www1" class="request" for='subGroup1' data-name="คำนำหน้าชื่อ">
	<input type="text" name="xxx1" class="request" for='subGroup1' data-name="ชื่อ">
	<input type="text" name="yyy1" class="request" for='subGroup1' data-name="นามสกุล">
  
	<br>
  
	<input type="checkbox" name="chk2" id="sex1" for='groupController2' value="1">
	<input type="checkbox" name="chk2" id="sex2" for='groupController2' value="2">
	<input type="text" name="www2" class="request" for='subGroup2' data-name="คำนำหน้าชื่อ">
	<input type="text" name="xxx2" class="request" for='subGroup2' data-name="ชื่อ">
	<input type="text" name="yyy2" class="request" for='subGroup2' data-name="นามสกุล">
      
	<br><br>
         
	<input type="text" id="male" name="male" readonly>
	<input type="text" id="female" name="female" readonly>
    
	<br><br>
      
	<input type="button" name="btnSubmit" id="btnSubmit" value="Submit">
      
</form>
$("input[class=request]").attr('disabled','disabled');

$(":checkbox[for='groupController1']").change(function(){
	var checking = $(this).prop("checked");
	$("input[for=subGroup1]").prop({"disabled":!checking});
});

$(":checkbox[for='groupController2']").change(function(){
	var checking = $(this).prop("checked");
	$("input[for=subGroup2]").prop({"disabled":!checking});
});

$(':checkbox[id^=sex]').on('change',function(){
        
	var th = $(this), name = th.prop('name'); 

	if (th.is(':checked')){
		$(':checkbox[name="'+ name +'"]').not($(this)).prop('checked',false);   
	}
    
	var numberOfmale = $('input:checkbox[id=sex1]:checked').length
	var numberOffemale = $('input:checkbox[id=sex2]:checked').length
	$("#male").val(numberOfmale);
	$("#female").val(numberOffemale);
        
});

$('#btnSubmit').click(function(){
    
	var i;
	var m = parseInt($('#male').val());
	var y = parseInt($('#female').val());
	var z = (m + y + 1);
    
	for (i = 1; i < z; i++) {
    
		var chk = 'chk' + i;
		var www = 'www' + i;
		var xxx = 'xxx' + i;
		var yyy = 'yyy' + i;

		if (($(':input[name="'+ chk +'"]').is(':checked')) && ($(':input[name="'+ www +'"]').val() == '')){
			$(':input[name="'+ www +'"]').focus();
			name = $(':input[name="'+ www +'"]').data('name');
			alert('โปรดระบุ'+name+' ลำดับที่ '+i);
			return false;
		}
    
		if (($(':input[name="'+ chk +'"]').is(':checked')) && ($(':input[name="'+ xxx +'"]').val() == '')){
			$(':input[name="'+ xxx +'"]').focus();
			name = $(':input[name="'+ xxx +'"]').data('name');
			alert('โปรดระบุ'+name+' ลำดับที่ '+i);
			return false;
		}//alert(www);
    
		if (($(':input[name="'+ chk +'"]').is(':checked')) && ($(':input[name="'+ yyy +'"]').val() == '')){
			$(':input[name="'+ yyy +'"]').focus();
			name = $(':input[name="'+ yyy +'"]').data('name');
			alert('โปรดระบุ'+name+' ลำดับที่ '+i);
			return false;
		}

	}   

});
มีปัญหาตรง loop for ครับ คือถ้าติ๊ก checkbox แถวแรก ลูปจะทำงานปกติครับ แต่ถ้าติ๊ก checkbox แถวสอง (ข้ามแถวแรก) ลูปจะทำงานผิด เพราะอ้างไม่ถูกต้อง จะต้องแก้ยังไง รบกวนดูให้ทีครับ ขอบคุณครับ


Hardalways 21-04-2015 12:34:10

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
เพิ่ม data-no="1" ....  ระบุค่าแถวข้อมูลเข้าไป

    <input type="checkbox" name="chk1" id="sex1" for='groupController1' value="1">  
    <input type="checkbox" name="chk1" id="sex2" for='groupController1' value="2">  
    <input type="text" name="www1" class="request" for='subGroup1' data-no="1" data-name="คำนำหน้าชื่อ">  
    <input type="text" name="xxx1" class="request" for='subGroup1' data-no="1" data-name="ชื่อ">  
    <input type="text" name="yyy1" class="request" for='subGroup1' data-no="1" data-name="นามสกุล">  
    
    <br>  
    
    <input type="checkbox" name="chk2" id="sex1" for='groupController2' value="1">  
    <input type="checkbox" name="chk2" id="sex2" for='groupController2' value="2">  
    <input type="text" name="www2" class="request" for='subGroup2' data-no="2" data-name="คำนำหน้าชื่อ">  
    <input type="text" name="xxx2" class="request" for='subGroup2' data-no="2" data-name="ชื่อ">  
    <input type="text" name="yyy2" class="request" for='subGroup2' data-no="2" data-name="นามสกุล"> 


แล้วเปลี่ยนโค้ดตอน submit ตามนี้

$('#btnSubmit').click(function(){  

    var len_chk1=$(":checkbox[for='groupController1']:checked").length;
    var len_chk2=$(":checkbox[for='groupController2']:checked").length;
    if(len_chk1!=0 || len_chk2!=0){
        $(".request:enabled").each(function(k,v){           
            if($(".request:enabled").eq(k).val()==""){           
                var obj=$(".request:enabled").eq(k);
                var alert_msg = "โปรดระบุ "+obj.data("name") " ลำดับที่ "+obj.data("no");
                alert(alert_msg);
                $(".request:enabled").eq(k).focus();
                return false;
            }
        });
    }
  
});  










ninenik 21-04-2015






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ