我有許多輸入表格列表並選擇過濾器選項。檢查這些字段中是否有內容的目標(例如輸入不是空的,並且選擇了選項)。我無法理解如何使它與更多的這些元素之一一起工作,因爲現在如果兩個輸入具有值並且一個輸入來清除它,則將按鈕設置爲禁用,儘管其中一個輸入具有值。幫助我處理它。檢查輸入和選擇是否爲空,並啓用按鈕
function buttonStatus() {
var buttonDisable = function(){
$('input[type="submit"]').attr('disabled', true)
},
buttonEnable = function(){
$('input[type="submit"]').attr('disabled', false);
}
$('input').on('keyup change', function(){
var inputText = $.trim($('input').val())
if(inputText.length > 0 || $('select option').is(':selected') && $('select option:selected').val() != 0) {
buttonEnable()
}
else {
buttonDisable()
}
})
$('select').on('keyup change', function(){
if ($('option').is(':selected') && $('option:selected').val() != 0 || $.trim($('input').val()).length > 0) {
buttonEnable()
}
else {
buttonDisable()
}
})
}
buttonStatus()
* {
box-sizing: border-box;
}
div {
margin: 50px;
}
input[type="submit"] {
background: green;
border: none;
padding: 5px;
color: #fff;
}
input[type="submit"][disabled] {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="text" />
<input type="text" />
<select>
<option value="0"></option>
<option value="1">Nigeria</option>
<option value="2">Kenya</option>
<option value="3">Tanzania</option>
<option value="4">Uganda</option>
<option value="5">Ethiopia</option>
<option value="6">Mozambique</option>
</select>
<select>
<option value="0"></option>
<option value="1">Nigeria</option>
<option value="2">Kenya</option>
<option value="3">Tanzania</option>
<option value="4">Uganda</option>
<option value="5">Ethiopia</option>
<option value="6">Mozambique</option>
</select>
<input type="submit" disabled>
</div>
如果我明白你需要得到什麼,你的解決方案是使用'$(this)'來知道你的目標是什麼元素。你可以這樣做:'var inputText = $ .trim($(this).val())'。問題出在'$('select')'中,因爲'$(this)'是select,而不是輸入。如果你在輸入標籤中輸入一個類名或一個id(兩者不同),這是最簡單的。 –
$(this)有一點幫助。 – NeedHate
我不得不對馬科斯剛纔所說的內容發表雙重評論。在函數()中,你用$(this)獲得當前目標;這是目前的範圍。你也可以通過函數傳遞一個事件「e」;示例函數(e){...}。當試圖寫這樣的驗證時,命名和識別所有內容都容易得多。這樣你就可以精確地選出你想要檢查的輸入/選擇。 – jjwdesign