我想實現類似這樣的功能。 我有4個文本字段和一個表單提交所需的選擇字段。除非文本字段有值並且從下拉列表中選擇了一個選項,否則我希望禁用此按鈕。我的代碼是here如果文本未輸入,保持按鈕被禁用
我遇到的問題是每當我在4個文本字段中輸入數據,並且雖然下拉列表被選中默認文本按鈕啓用。在我更改下拉菜單後,它將被永久禁用。
我想實現類似這樣的功能。 我有4個文本字段和一個表單提交所需的選擇字段。除非文本字段有值並且從下拉列表中選擇了一個選項,否則我希望禁用此按鈕。我的代碼是here如果文本未輸入,保持按鈕被禁用
我遇到的問題是每當我在4個文本字段中輸入數據,並且雖然下拉列表被選中默認文本按鈕啓用。在我更改下拉菜單後,它將被永久禁用。
試試這個 - DEMO
$('#fname, #lname, #zipcode').on("keyup", action);
$('#location').on("change", action);
function action() {
if($('#fname').val().length > 0 && $('#lname').val().length > 0 && $('#zipcode').val().length > 0 && $('#location').val() != '') {
$('#submit').prop("disabled", false);
} else {
$('#submit').prop("disabled", true);
}
}
使用jQuery:
var text_valid = false, dropdown_valid = false;
$("input[type='text'].required:focus").each(function() {
if($(this).val().length > 0){
text_valid = true
}
}
if($("#mydropdown option:selected").length){
dropdown_valid = true;
}
if(text_valid && dropdown_valid) {// Our form is valid
$("#mybutton").removeAttr("disabled");
}
else { // Our form is invalid
$("#mybutton").attr("disabled", "disabled");
}
我想你可以指望有多少投入有文字
$('input').keyup(function(){
var count = $('input:text').filter(function(){return $(this).val() == "";}).size();
});
但是,因爲你使用的是選擇標籤我認爲你應該檢查它是否有價值。
$('input').keyup(function(){
var count = $('input:text').filter(function(){return $(this).val() == "";}).size()
+ $('select:text').filter(function(){return $(this).val() == "";}).size();
if(count > 0){
$('#submit').button({disabled: true});
}else{
$('#submit').button({disabled: false});
}
});
+1打我 – Adil 2012-08-14 17:07:51
@Zoltan:有是我猜的代碼,錯誤當所有的文本字段中輸入,然後再下拉選擇按鈕被禁用 – user525146 2012-08-14 17:49:23
更新了答案 - HTTP ://jsfiddle.net/C2mRd/6/ – 2012-08-14 18:10:27