我希望在啓用提交按鈕之前填寫三個字段。下面的jquery是一種工作,但提交按鈕被啓用,即使並非所有三個字段都要填充,除了下拉列表選擇。請不要介意這個爛攤子,我正在嘗試幾種不同的方式來調試這個,但我很茫然。如前所述,選擇列表的工作原理應該如此。請查看jsfiddle示例。爲什麼我的提交按鈕被填充?
HTML: --------- 高 中 低
<input class="required" id="id_title" name="title" placeholder="Please enter a title." type="text" />
<textarea class="required" id="id_comment" name="comment" placeholder="Comment is required">
</textarea>
<input id='submit' type="Submit" value="Submit Comment">
</form>
的jQuery:
$(document).ready(function() {
var val1 = false;
var val2 = false;
var val3 = false;
$('input[id="submit"]').attr('disabled','disabled');
$('textarea[id="id_comment"]').keyup(function() {
if (val2 == false || val3 == false || (!$.trim($('textarea[id="id_comment"]').val())) && ($('textarea[id="id_comment"]').val() == '')) {
$('input[id="submit"]').attr('disabled','disabled');
val1 = false;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
else{
$('input[id="submit"]').removeAttr('disabled');
val1 = true;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
});
$('input[id="id_title"]').keyup(function() {
if (!$.trim($('input[id="id_title"]').val())){
if (val1 == false && val3 == false){
if ($('input[id="id_title"]').val() == ''){
$('input[id="submit"]').attr('disabled','disabled');
val2 = false;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
}
}
else if (!$.trim($('input[id="id_title"]').val())){
if (val1 == false && val3 == false){
if($('input[id="id_title"]').val() != '') {
$('input[id="submit"]').attr('disabled','disabled');
val2 = true;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
}
}
else{
$('input[id="submit"]').removeAttr('disabled');
val2 = true;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
});
$('select[id="id_priority"]').change(function() {
if (val1 == false && val2 == false && ($('select[id="id_priority"]').val() == '')) {
$('input[id="submit"]').attr('disabled','disabled');
val3 = false;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
else if (val1 == false && val2 == false && ($('select[id="id_priority"]').val() != '')) {
$('input[id="submit"]').attr('disabled','disabled');
val3 = true;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
else{
$('input[id="submit"]').removeAttr('disabled');
val3 = true;
alert ("Comment set:"+val1+", Title set: "+val2+", Priority set: "+val3)
}
});
});
不相關的問題,但'$ ('tag [id = something]')'最好寫成'$('#something')'。 – Barmar 2013-04-30 01:25:22