2016-05-06 6 views
5

मेरे पास चेकबॉक्स वाला एक फॉर्म है और मैं इसे फ़ॉर्म सबमिट करने के बाद इसे चेक करना चाहता हूं जब यह किसी त्रुटि के साथ उसी दृश्य पर वापस जाता है। मैंने सुना है कि मान विशेषता मुझे चेकबॉक्स को चेक करने में मदद कर सकती है, इसलिए मैं इसे सही/गलत पर सेट करने की कोशिश कर रहा हूं। वैसे भी, इनपुट मान "झूठा" रहता है भले ही मैं इसे क्लिक करता हूं। वास्तव में क्या होता है? मैंने सोचा था कि मूल्य चेकबॉक्सचेकबॉक्स मान सही/झूठा

<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false"> 

     <script> 
      $("#checkbox1").is(':checked', function(){ 
       $("#checkbox1").attr('value', 'true'); 
      }); 
     </script> 
+1

मैं इस सवाल से संदेह में हूँ। ऐसा लगता है कि यदि चेकबॉक्स चेक किया गया है तो आप मूल्य को बदलना चाहते हैं। लेकिन पारंपरिक रूप से चेकबॉक्स के मान नहीं बदलते हैं। उनका राज्य निर्धारित करता है कि क्या वे बैकएंड में पास हैं या नहीं। – Taplar

+0

यह इंगित करने लायक है कि जब कोई चेकबॉक्स टॉगल करता है, तो तत्व का HTML वास्तव में परिवर्तित नहीं होता है। इस प्रकार, '.getAttribute ('चेक किया गया') कुछ भी वापस नहीं करता है, भले ही आप HTML की 'चेक' विशेषता को प्रारंभिक स्थिति सेट करने के लिए लागू करेंगे। फिक्स इनपुट की जेएस प्रॉपर्टी तक पहुंचने के लिए है, जिसे 'चेक' भी कहा जाता है। Ie एक चेक-बॉक्स की परिवर्तन घटना के लिए एक वेनिला जेएस हैंडलर में, यह कुछ भी नहीं करता है: 'byId ('tgt')। Value = this.getAttribute ('चेक'); ', जबकि यह पाठ को सत्य या गलत पर सेट करता है : 'byId ('tgt')। value = this.checked;' – enhzflep

+0

क्या आप कह रहे हैं कि पृष्ठ 1 पर आप वैकल्पिक रूप से एक चेकबॉक्स का चयन कर सकते हैं और फिर सबमिट कर सकते हैं, और दूसरे पृष्ठ पर आप चेक किए गए राज्य को यह सुनिश्चित करना चाहते हैं कि यह कैसा था पहले फॉर्म पर? – Taplar

उत्तर

11

अगर मैं सवाल समझ में, आप का मान परिवर्तित करना चाहते हैं की कोशिश करो चेकबॉक्स अगर यह चेक किया गया है या नहीं।

$('#checkbox-value').text($('#checkbox1').val()); 
 

 
$("#checkbox1").on('change', function() { 
 
    if ($(this).is(':checked')) { 
 
    $(this).attr('value', 'true'); 
 
    } else { 
 
    $(this).attr('value', 'false'); 
 
    } 
 
    
 
    $('#checkbox-value').text($('#checkbox1').val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false"> 
 

 
<div id="checkbox-value"></div>

+0

'.on ('परिवर्तन', 'जो मुझे बिल्कुल जरूरी था – divHelper11

4

उपयोग Checked = true

$("#checkbox1").prop('checked', true); 

नोट क्लिक करने के बाद सही/गलत हो जाता है: मैं स्पष्ट नहीं है कि आप के लिए onclick/onchange चेकबॉक्स पर घटना चाहते हैं नहीं कर रहा हूँ। is(":checked", function(){}) प्रश्न में गलत है।

+0

'सच' 'बूलियन जैसा ही काम करता है? –

+0

सुनिश्चित नहीं है कि आपको सच्चे – gavgrif

+0

के आस-पास के एकल उद्धरणों की आवश्यकता है, जबकि 'सत्य' का उपयोग करते समय यह अपेक्षा के अनुसार काम करेगा। लेकिन अगर आप अनचेक करना चाहते हैं और 'झूठी' का उपयोग करना चाहते हैं तो काम नहीं करेगा। तो बूलियन का उपयोग करना अच्छा है। अपडेट किया गया। धन्यवाद :) –

1

जेएस में चेकबॉक्स वास्तव में अजीब हो सकते हैं। checked विशेषता की उपस्थिति की जांच करने के लिए आप सबसे अच्छे हैं। (यदि पुराने checked को 'झूठी' पर सेट किया गया है, तो भी पुराने jQuery संस्करणों को वापस लौटा दिया गया है।) एक बार जब आप यह निर्धारित कर लें कि कुछ चेक किया गया है तो आप value विशेषता से मूल्य प्राप्त कर सकते हैं।

1

jQuery.is() फ़ंक्शन में .is('selector', function) के लिए हस्ताक्षर नहीं है।

मुझे लगता है कि आप इस तरह से कुछ करना चाहता हूँ:

 if($("#checkbox1").is(':checked')){ 
      $("#checkbox1").attr('value', 'true'); 
     } 
+0

इसे इंगित करने के लिए धन्यवाद। वैसे भी यह अभी भी मेरे लिए काम नहीं करता है। हे भगवान क्यों xD – divHelper11

2

इस

$("#checkbox1").is(':checked', function(){ 
 
    $("#checkbox1").prop('checked', true); 
 
}); 
 
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false">

1

मैं निम्नलिखित मान्यताओं के तहत इस उत्तर पोस्ट करने के लिए जा रहा हूँ:

यहाँ एक समाधान है। 1) You (un)selected the checkbox on the first page and submitted the form. 2) Your building the second form and you setting the value="" true/false depending on if the previous one was checked. 3) You want the checkbox to reflect if it was checked or not before.

यदि ऐसा है तो आप कुछ की तरह कर सकते हैं:

var $checkbox1 = $('#checkbox1'); 
$checkbox1.prop('checked', $checkbox1.val() === 'true'); 
संबंधित मुद्दे