为什么jquery.val()函数没有设置实际值
Why jquery .val() function is not setting a real value?
我使用此函数来检查属性的存在:
var hasAttribute = function(el, attr) {
if ("hasAttribute" in el) {
return el.attributes[attr] != null;
}
else if ("outerHTML" in el) {
return (el.outerHTML
.replace(el.innerHTML, "")
.indexOf(" " + attr + "=") > -1);
}
};
问题是,当我使用.val(x)
设置输入值时,如果我使用.val()
,但hasAttribute
函数无法检测到,我可以获得该值。这个jsfiddle显示了问题(我希望第一个警报说"input有值",第二个警报显示它,但在Chrome中,至少第一个警报是"input需要值")。
如何使.val(x)
按预期工作?(或者如何使hasAttribute
检测到这些值)
稍后对此元素的任何更新都将更新属性,而不是属性。
这个https://stackoverflow.com/a/5876747/297641答案有详细的属性和道具。
可能是下面的内容,
if ($("input").prop("value")) {
alert("input has a value");
} else {
alert("input needs a value");
}
你现在真的不需要函数。因为如果道具不存在,jQuery将返回undefined
。
正如Felix所指出的,最好只做input.value
,如果它没有""
的任何值,这是错误的。
使用.val
就像执行el.value = ...
。这与在元素上设置value
属性不同。
相关文章:
- 如何在页面加载时设置函数的条件
- 如何在Javascript中设置函数在上一次结束时启动
- 在对象中定义JavaScript获取和设置函数,而不使用“;这个“;
- 杰辛特 |传递默认设置 |函数声明和“this”
- 在运行时用JavaScript设置函数的名称
- 用对象设置函数变量's值
- 当我在tinmyce.int()中编写设置函数时,tinymce消失了,只有纯文本区域可见
- 如何使用JavaScript变量设置函数集css宽度
- Javascript;取消设置函数
- 设置函数图像样式
- 为什么我的设置函数之间的超时不起作用
- jQuery 设置函数执行前的等待时间
- 在Node.js中设置函数执行顺序
- 如何在javascript中设置函数的优先级
- 设置函数变量与使用对象文字相同
- 以 JavaScript 对象文字表示法设置函数的属性
- 使用jQuery's.prop方法来设置函数的属性
- 设置函数的超时时间
- 显式设置函数的返回类型
- 当bool值变为true时,如何设置函数调用