我查看了之前的问题,但它们似乎没有回答我现在遇到的情况。
在我的实际代码中,我正在动态创建一个表单,并添加两个按钮,一个用于提交,另一个用于其他功能。为此,我将按钮的"type"属性分别设置为"submit"和"button"。问题是,在Chrome浏览器中,两个按钮都会提交表单。
表单代码:
我使用以下HTML代码进行了更简单的测试:
以下代码是可行的,但是当点击按钮时表单不会提交:
表单和按钮是动态生成的,我正在使用jQuery,因此attr()是最明显的方法。jQuery核心和Chrome的JS规范有问题吗?在Firefox中可以正常工作。非常感谢。
在我的实际代码中,我正在动态创建一个表单,并添加两个按钮,一个用于提交,另一个用于其他功能。为此,我将按钮的"type"属性分别设置为"submit"和"button"。问题是,在Chrome浏览器中,两个按钮都会提交表单。
表单代码:
form = $(document.createElement('form')).attr('method', 'get').attr('action', defaults.action).appendTo(object);
按钮的代码:
form.append(
$(document.createElement('div')).
attr('class', classesHash.buttonsContainer).
append(
$(document.createElement('button')).
attr('type', 'submit').
addClass(classesHash.submitButton).
attr('title', i18n('Filter')).
attr('value', i18n('Filter')).
append(i18n('Filter'))
).
append(
$(document.createElement('button')).
attr('type', 'button').
addClass(classesHash.addButton).
attr('title', i18n('Add filter')).
attr('value', i18n('Add filter')).
append(i18n('Add filter')).
click(addFilter)
)
);
我使用以下HTML代码进行了更简单的测试:
<form action="" method="get"><button id="test">test</button></form>
当Chrome找不到提交按钮时,任何按钮都可以提交表单。
以下代码无效,表单会在按钮单击时被提交:
$('#test').attr('type', 'button');
以下代码是可行的,但是当点击按钮时表单不会提交:
document.getElementById('test').setAttribute('type', 'button');
表单和按钮是动态生成的,我正在使用jQuery,因此attr()是最明显的方法。jQuery核心和Chrome的JS规范有问题吗?在Firefox中可以正常工作。非常感谢。
button
上指定type="button"
有什么意义? - meder omuraliev