2010-09-18 13 views
8

मुझे इस परिणाम को प्राप्त करने का कोई मुद्दा है, मुझे इनपुट फ़ील्ड में टेक्स्ट दर्ज होने तक सबमिट बटन को अक्षम करने के लिए बहुत कुछ चाहिए। मैंने कुछ कार्यों की कोशिश की है लेकिन बिना परिणाम के। कृपया अगर आप इसके साथ मेरी मदद कर सकते हैं तो इसकी सराहना की जाएगी।जब तक इनपुट फ़ील्ड में टेक्स्ट दर्ज नहीं किया जाता है तब तक मैं सबमिट बटन को अक्षम कैसे कर सकता हूं?

एचटीएमएल मार्कअप

<form action="" method="get" id="recipename"> 
<input type="text" id="name" name="name" class="recipe-name" 
    value="Have a good name for it? Enter Here" 
    onfocus="if (this.value == 'Have a good name for it? Enter Here') {this.value = '';}" 
    onblur="if (this.value == '') {this.value = 'Have a good name for it? Enter Here';}" 
/> 
<input type="submit" class="submit-name" value="" /> 
</form> 

धन्यवाद, अग्रिम में।

उत्तर

5

आप इस का उपयोग कर सकते हैं जैसे कुछ जावास्क्रिप्ट समारोह:

var initVal = "Have a good name for it? Enter Here"; 
$(document).ready(function(){ 
    $(".submit-name").attr("disabled", "true"); 
    $(".recipe-name").blur(function(){ 
     if ($(this).val() != initVal && $(this).val() != "") { 
      $(".submit-name").removeAttr("disabled"); 
     } else { 
      $(".submit-name").attr("disabled", "true");   
     } 
    });  
}); 

jsfiddle में देखें।

+0

इस उत्तर के लिए मैं देख रहा था है, धन्यवाद आपकी मदद के लिए बहुत बहुत। – Ozzy

+1

@ ओजी: आपका स्वागत है – Topera

1

कॉल नीचे onkeyup घटना में (jQuery के लिए उदाहरण देकर)

function handleSubmit() 
{ 
if($.trim($('#name').val() == '')) 
{ 
$('.submit-name').attr('disabled','disabled'); 
} 
else 
{ 
$('.submit-name').attr('disabled',''); 
} 
} 
0
$("#textField").keyup(function() { 
    var $submit = $(this).next(); // or $("#submitButton"); 
    if(this.value.length > 0 && this.value != "Default value") { 
     $submit.attr("disabled", false); 
    } else { 
     $submit.attr("disabled", true); 
    } 
}); 
1

आप इस कोशिश कर सकते:

var nameText = $("#name"); 

nameText.attr("disabled", "disabled"); 

nameText.change(function() { 
    if(nameText.val().length > 0) { 
    nameText.attr("disabled", ""); 
    } else { 
    nameText.attr("disabled", "disabled"); 
    } 

}); 
+1

लंबाई की जांच करने से पहले मूल्य को ट्रिम करना न भूलें –

5

accpeted समाधान के साथ ही समस्या यह है कि बटन के बाद ही ध्यान केंद्रित पाठ क्षेत्र से निकाल दिया जाता सक्षम है (निश्चित रूप से उस में डेटा दर्ज करने के बाद)। जैसे ही कोई टेक्स्ट फ़ील्ड में प्रवेश किया जाता है, बटन को सक्षम नहीं किया जाना चाहिए? यहां एक समाधान है जो इसे लागू करता है।

अन्य समाधान के लिए लिंक: Keep button disabled if text is not entered

कुछ इस तरह:

$('.recipe-name').on("keyup", action); 
function action() { 
    if($('.recipe-name').val().length > 0) { 
     $('#submit-name').prop("disabled", false); 
    }else { 
     $('#submit-name').prop("disabled", true); 
    } 
} 
संबंधित मुद्दे

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