【发布时间】:2011-08-03 00:59:20
【问题描述】:
val() 对于复选框控件无用,而对于在所有其他输入控件中一致地获取输入数据很有用,是否有一些理由?
例如对于复选框,无论复选框状态如何,at 似乎总是返回“on”。对于实际上没有“value”属性的其他输入控件,例如select 和 textarea,它的行为与您预期的一样。见:
http://jsfiddle.net/jamietre/sdF2h/4/
我想不出它不返回 true 或 false 的充分理由。如果做不到这一点,至少只有在检查时才返回“on”,否则返回空字符串。做不到这一点,至少总是返回一个空字符串,因为复选框没有value 属性!
显然我知道如何使用attr 获取值,但情况就是这样。我正在开发一个简单的(到目前为止)C# jQuery 实现来在服务器上进行 HTML 解析,并且我试图完全忠实于 jQuery 的实现,以便它在客户端或服务器上针对同一个 DOM 表现一致。但这似乎很愚蠢,无论如何我都很难让自己实际编码“值”来为复选框返回“ON”。但如果我不这样做,它就不会是一致的。所以我试图理解,这样做有什么理由吗?它是出于某种目的,还是仅仅是某种人工制品?有人会对复选框使用val() 方法吗?如果是,为什么?如果不是,为什么 jQuery 架构师决定采用这种方法使其无用?
【问题讨论】:
-
你也应该关闭你的选项标签
-
这是最奇怪的,但它是 javascript。只需使用 attr('checked') 即可,遗憾的是您必须保持一致。 :|
标签: jquery