JScript Button在chrome中工作,但在Firefox中不工作

时间:2014-08-01 09:03:48

标签: javascript html5 google-chrome firefox

我有一个脚本,基本上在单击按钮时附加属性。脚本如下;

<script type="text/javascript">
window.generateRow = function() {
    var d = document.getElementById("add");
    var p = document.createElement("p");
    var input = document.createElement("input");
    input.setAttribute('type', 'text');
    input.setAttribute('pattern', '^[a-zA-Z ]+$');
    input.setAttribute('name', 'items[]');
    input.setAttribute('required');
    p.appendChild(input);
    d.appendChild(p);
}
</script>

在我的HTML中,我使用普通的onClick函数来回调函数

<div id="add"></div>
<p><input type="button" value="Add" name="" onclick="generateRow()"/></p>

我遇到的问题是在我的Chrome版本中,每次单击按钮时都可以添加字段,但在Firefox和Chrome的更新版本中,该按钮不会响应任何内容。

我使用的是Firefox版本31.0,而我使用的是Chrome版本32.0

2 个答案:

答案 0 :(得分:1)

NodeElement方法setAttribute需要两个参数,但第input.setAttribute('required')行只有一个。您必须改为使用input.setAttribute('required', true);

更新后的整个代码:

generateRow = function() {
    alert('m');
    var d = document.getElementById("add");
    var p = document.createElement("p");
    var input = document.createElement("input");
    input.setAttribute('type', 'text');
    input.setAttribute('pattern', '^[a-zA-Z ]+$');
    input.setAttribute('name', 'items[]');
    input.setAttribute('required', true);
    p.appendChild(input);
    d.appendChild(p);
}

DEMO

答案 1 :(得分:1)

http://jsfiddle.net/ZZ7T5/2/它与小提琴问题的关联在setAttribute(“required”)中。当你只传递一个时,它要求两个参数

window.generateRow = function() {
    var d = document.getElementById("add");
    var p = document.createElement("p");
    var input = document.createElement("input");
    input.setAttribute('type', 'text');
    input.setAttribute('pattern', '^[a-zA-Z ]+$');
    input.setAttribute('name', 'items[]');
    input.setAttribute('required', true); // THIS IS ERR
    p.appendChild(input);
    d.appendChild(p);
}