使用数字小键盘我添加了一个.switch处理程序,单击该处理程序会将值恢复为“0”(仅限测试用途)
如果值为+32且按下按钮,我希望它更改为-32,反之亦然。
到目前为止,我只是让它回到0,我在想再删除或添加val,甚至尝试过 - $('#myInput').val());
$('.switch').click(function () {
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
$('#myInput').val(parseInt($('#myInput').val()) - $('#myInput').val());
}
if (!isNaN($('#myInput').val()) && $('#myInput').val().length < 0) {
$('#myInput').val(parseInt($('#myInput').val()) + $('#myInput').val());
}
});
答案 0 :(得分:3)
如果您要做的只是在正数/负数之间来回切换,则可以使代码更简单并失去所有if
条件:
$('.switch').click(function () {
var $input = $('#myInput');
$input.val() != "" && !isNaN($input.val()) && $input.val(-$input.val());
});
这相当于将数字乘以-1
,这将产生相同的效果。
答案 1 :(得分:2)
$('#myInput').val().length < 0
什么时候字符串的长度小于零?
parseInt($('#myInput').val()) + $('#myInput').val()
这实际上不会进行数字加法,如果该值是字符串1
,那么它就像执行1+"1"
将返回11
我认为您正在寻找的是:
$('.switch').click(function () {
var val = parseInt($('#myInput').val());
$('#myInput').val(-val);
});
请参阅here