2012-05-21 16 views
8

मैं निम्न चेकबॉक्स है:JQuery सत्यापन-इनपुट पाठ फ़ील्ड आवश्यक होने की

<input type="checkbox" id="startClientFromWeb" name="startClientFromWeb" data-bind="checked: StartClientFromWeb" /> 

और निम्नलिखित लेख इनपुट करें फ़ील्ड:

<input id="mimeType" name="mimeType" data-bind= "value: MimeType" /> 

यह मेरा js सत्यापन कोड:

$("#franchiseForm").validate({ 
      rules: { 
       mimeType: { 
        required: $("#startClientFromWeb").is(":checked") 
       } 
      } 
     }); 

मैं चाहता हूं कि माइम टाइप इनपुट टेक्स्ट फ़ील्ड केवल तभी जांचें जब चेकबॉक्स चेक किया गया हो। किसी कारण से ऊपर काम नहीं कर रहा है। मैं जावास्क्रिप्ट और jquery के लिए काफी नया हूँ। काम करने वाले उदाहरण के साथ किसी भी मदद की सराहना की जाएगी। धन्यवाद!

उत्तर

9

आप इस तरह बातें संभाल करने अपने स्वयं के कस्टम मान्यता तरीकों जोड़ सकते हैं:

$.validator.addMethod("requiredIfChecked", function (val, ele, arg) { 
    if ($("#startClientFromWeb").is(":checked") && ($.trim(val) == '')) { return false; } 
    return true; 
}, "This field is required if startClientFromWeb is checked..."); 


$("#franchiseForm").validate({ 
     rules: { 
      mimeType: { requiredIfChecked: true } 
     } 
}); 
+0

मैंने आपके कोड की कोशिश की। : यह मुझे निम्न त्रुटि देता है "उम्मीद:" इस लाइन के लिए: माइम प्रकार: {} requiredIfChecked आप फिडल में उदाहरण दे सकते हैं? – Mdb

+0

'{आवश्यक आईएफ चेक किया गया: सत्य} 'क्षमा करें ... – ShaneBlake

+0

धन्यवाद! समस्या यह थी कि मैं $ (दस्तावेज़) पर सत्यापन लागू कर रहा हूं। पहले से ही चेकबॉक्स का मान हमेशा गलत है। अब मैं ko.apply बाइंडिंग कॉल के बाद सत्यापन लागू करता हूं और यह अपेक्षा के अनुसार काम करता है। वैसे भी आपकी मदद के लिए धन्यवाद। – Mdb

2

अगर इनपुट disabled है तो सत्यापन खराब नहीं होगा। आप उस तथ्य का उपयोग कर सकते हैं - टेक्स्टबॉक्स की आवश्यकता हो, लेकिन प्रारंभ में अक्षम हो, और केवल चेकबॉक्स चेक होने पर इसे सक्षम करें।

$(function() { 
    $('#startClientFromWeb').change(function() { 
     if ($(this).is(':checked')) { 
      $('#mimeType').removeAttr('disabled');     
     } 
     else { 
      $('#mimeType').attr('disabled', 'disabled'); 
     } 
    }); 
}); 
+0

मैं अक्षम नहीं है #mimeType इनपुट। – Mdb

संबंधित मुद्दे