2017-06-16 55 views
0

我有一個表單元素,我想在單擊事件中切換1和0之間的值。jQuery - el.val(!e.val())返回false

我知道我可以存儲此值並對其進行測試,以確定該字段的新值。

雖然我的問題是,爲什麼下面的工作沒有?

$('#myEl').val(!$('#myEl').val()); 
+0

你能張貼代碼的休息嗎? – BravoZulu

回答

3

val()返回一個字符串,!返回一個布爾值,它被轉換爲字符串(由val(...))變成「false」。

相反轉換的串號和布爾值數,使用一元+兩次:

$("#toggle").click(function() { 
 
    $('#myEl').val(+!+$('#myEl').val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="myEl" value="1"> 
 
<button id="toggle">Toggle</button>

0

因爲#myEl有一個值,通過做$('#myEl').val(!$('#myEl').val());您將#myEl設置爲false。