[英]check value of input field
我有這樣的結構。 如果字段為空,請在按鈕上單擊jquery代碼,使輸入邊框變為紅色。 第一行一切正常。 在其他地方,即使我輸入有效值,按鈕單擊后行邊框也會變為紅色。
$('.btn-submit').click(function(){ var value = $(':input').val(); if(!value.length) { $(this).parents('.row').find(':input').css('border-color','#f00'); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='row'> <input> <button class='btn-submit'>Check</button> </div> <div class='row'> <input> <button class='btn-submit'>Check</button> </div> <div class='row'> <input> <button class='btn-submit'>Check</button> </div>
更改您的JS代碼:
$('.btn-submit').click(function(){
var value = $(this).parent().find('input').val();
if(!value.length) {
$(this).parents('.row').find(':input').css('border-color','#f00');
}
});
您的問題:
您選擇所有<inputs/>
而不是最接近的。
嘗試這個:
$('.btn-submit').click(function(){ var value = $(this).parent().find("input").val(); if(!value.length) { $(this).parent().find(':input').css('border-color','#f00'); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class='row'> <input> <button class='btn-submit'></button> </div> <div class='row'> <input> <button class='btn-submit'></button> </div> <div class='row'> <input> <button class='btn-submit'></button> </div>
單擊任何按鈕時,它正在檢查第一個 <input>
的值。
更改此行:
var value = $(':input').val();
對此:
var value = $(this).prev(":input").val();
這應該在按鈕之前直接選擇<input>
元素。
另一個提示 :您似乎嘗試使用jQuery查找父級的子級輸入。 相反,您可以使用諸如prev()
類的東西找到兄弟姐妹 (這將在您的情況下起作用)。
您的問題是您正在查看所有輸入,而不僅僅是按鈕的同級。 請嘗試使用以下JavaScript:
$('.btn-submit').click(function(){
var value = $(this).parent().find('input').val();
if(!value.length) {
$(this).parents('.row').find(':input').css('border-color','#f00');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.