相关疑难解决方法(0)

使用JQuery设置名为"required"的属性和任何值都不起作用

这不起作用:

$("#elementId").attr("required", "true");
Run Code Online (Sandbox Code Playgroud)

在Chrome和Firefox中,DOM都会生成required属性(无值)或required=""(空值).

并且这个例子中的值是"真"并不重要.如果你尝试"asdf"同样的事情发生.

奇怪的是,我相信这曾经发挥作用,因为这个新代码是一个持续了好几年的大型项目的一部分.

我唯一能想到的是我的Chrome(v10)和Firefox(v4)现在都已经足够先进,他们将所需属性识别为HTML5保留关键字.我添加了novalidate属性,认为这可能会关闭任何与表单相关的HTML5.没有这样的运气.

思考?

编辑:

为了澄清,这只发生在JQuery上.如果我这样说,它有效:

$("#elementId")[0].setAttribute("required", "true");
Run Code Online (Sandbox Code Playgroud)

JQuery中有错误吗?知道为什么这只发生在JQuery上吗?我们的开发团队喜欢所有代码,尽可能通过JQuery.我可以使用直接的setAttribute JavaScript方法,但宁可使用可行的JQuery解决方案.

编辑2:

问题的症结在于......

为什么attr()在常规setAttribute()方法中使用JQuery的方法不起作用?该attr()方法setAttribute()在某些时候调用是否较低?

这就是令人困惑的事情.required="true"如果您使用setAttribute(),则Chrome和Firefox是完美的设置.

html javascript jquery

16
推荐指数
3
解决办法
7万
查看次数

标签 统计

html ×1

javascript ×1

jquery ×1