JS改变$(this).val()的问题。
vResponse是一个数组,.typeahead是个input
for循环判断input的值是否在数组,如果不在,则清空input值。
通过console.log输出,判断是没有问题的,就是$(this).val("")这句不生效,不知道什么原因?请大家帮忙看看,或者帮忙改一下代码,谢谢。
$("#divMainContent").on("blur", ".typeahead", function () {
for (i = 0; i < vResponse.length; i++) {
if ($(this).val() == vResponse["value"]) {
return
};
};
$(this).val("");
}); $(this).val();好像是获取值的,$(this).val=''你试下 如果val()不行的话, 使用attr试试, 我估计也不是我说的问题, 你可以试着console.log($(this).val()) 看下输出了什么.... $(this).html('') 或 $(this).text('')
val()要有value属性才会生效 本帖最后由 不苦小和尚 于 2019-10-15 07:29 编辑
this应该指向的是window,把this改成event.target试试 发个可以运行的代码 判断数组不是这样的,百度一下,js判断数组。 $("#divMainContent").on("blur", ".typeahead", function () {
// 选1个即可
// if (vResponse.indexOf($(this).val()) == -1) $(this).val("");
// if(!$.inArray($(this).val(), vResponse)) $(this).val("");
});
页:
[1]