0

我一直在研究这个问题一段时间,我提出的每个解决方案“几乎都有效”。理想情况下,我想在输入时将输入值保存到变量中,因此在将输入值保存到变量之前我不必执行任何命令。由于我无法找到解决方案,因此我一直在努力在输入失去焦点后立即对其进行更改。我尝试过 .focusout、.change 和 .blur,但在输入失去焦点的那一刻,没有一个真正改变它。

//This will save the input value into the variable formInput
var formInput = $("#someForm input[type=text]").val();

//This successfully changes the value of formInput, but only after performing 
//another command, such as clicking go or pressing enter.  
//Tab does not count to the input "losing focus"

$("#someForm input[type=text]").focusout(function() {
$(this).val() = formInput.val();
});

// Same as focusout, as well as blur.
$("#someForm input[type=text]").change(function() {
$(this).val() = formInput.val();
});

//Nope.
$("#someForm input[type=text]").keyup(function() {
    formInput = $("this").val();
});
4

2 回答 2

0

尝试

var inputText;
$("#someForm input[type=text]").keyup(function() {
    inputText = $(this).val();
});
于 2013-03-25T15:07:01.573 回答
0

在现代浏览器中,监听input事件

$("#someForm input[type=text]").on("input", function() {    
    formInput = $(this).val();
});

但是,keyup如果您清除关于formInput是包含字段值的字符串值还是链接到字段本身的 jQuery 对象(如果formInput是字符串,它将没有val()方法)的混淆,处理程序也应该工作。

还有这段代码:

$("this")

正在选择所有<this>元素,如果返回任何内容,我会感到惊讶。

于 2013-03-25T15:18:19.867 回答