Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入类型的onClick函数=";按钮“;不起作用_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 输入类型的onClick函数=";按钮“;不起作用

Javascript 输入类型的onClick函数=";按钮“;不起作用,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有这个代码,点击按钮“获取更多字段”将创建整个div的副本并创建字段。但点击按钮后,什么都没有发生。所有其他按钮都工作正常。不知道我做错了什么。 提前谢谢你的帮助 <html> <head> </head> <body> <div id="readroot" style="display: none"> <input type="button" value="Remove review" onclic

我有这个代码,点击按钮“获取更多字段”将创建整个div的副本并创建字段。但点击按钮后,什么都没有发生。所有其他按钮都工作正常。不知道我做错了什么。 提前谢谢你的帮助

<html>
<head>
</head>
<body>

<div id="readroot" style="display: none">

    <input type="button" value="Remove review"
        onclick="this.parentNode.parentNode.removeChild(this.parentNode);" /><br /><br />

    <input name="cd" value="title" />

    <select name="rankingsel">
        <option>Rating</option>
        <option value="excellent">Excellent</option>
        <option value="good">Good</option>
        <option value="ok">OK</option>
        <option value="poor">Poor</option>
        <option value="bad">Bad</option>
    </select><br /><br />

    <textarea rows="5" cols="20" name="review">Short review</textarea>
    <br />Radio buttons included to test them in Explorer:<br />
    <input type="radio" name="something" value="test1" />Test 1<br />
    <input type="radio" name="something" value="test2" />Test 2

</div>

<form method="post" action="index1.php">

    <span id="writeroot"></span>

    <input type="button" id="moreFields" value="Give me more fields!"  />
    <input type="submit" value="Send form" />

</form>
</body>
</html>

<script>

var counter = 0;


function moreFields() {
    counter++;
    var newFields = document.getElementById('readroot').cloneNode(true);
    newFields.id = '';
    newFields.style.display = 'block';
    var newField = newFields.childNodes;
    for (var i=0;i<newField.length;i++) {
        var theName = newField[i].name
        if (theName)
            newField[i].name = theName + counter;
    }
    var insertHere = document.getElementById('writeroot');
    insertHere.parentNode.insertBefore(newFields,insertHere);
}

window.onload = moreFields;
</script>



评级 杰出的 好 好啊 贫穷的 坏的

简短回顾
包括在资源管理器中测试它们的单选按钮:
测试1
测试2 var计数器=0; 函数moreFields(){ 计数器++; var newFields=document.getElementById('readroot').cloneNode(true); newFields.id=''; newFields.style.display='block'; var newField=newFields.childNodes;
对于(var i=0;i您忘记了定义onclick属性,以便在单击按钮时执行某些操作,因此没有发生任何事情是正确的执行,请参见下文

<input type="button" id="moreFields" onclick="moreFields()" value="Give me more fields!"  />
                                     ----------------------

----------------------

您必须将按钮的ID更改为与函数名不同

var计数器=0;
函数moreFields(){
计数器++;
var newFields=document.getElementById('readroot').cloneNode(true);
newFields.id='';
newFields.style.display='block';
var newField=newFields.childNodes;
对于(变量i=0;i



评级 杰出的 好 好啊 贫穷的 坏的

简短回顾
在资源管理器中包括用于测试它们的单选按钮:
测试1
测试2
你也可以尝试创建一个按钮,如果你把它放在表单之外,这将起作用

<button onClick="moreFields(); return false;">Give me more fields!</button>
给我更多字段!
当我尝试时:

<input type="button" id="moreFields" onclick="alert('The text will be show!!'); return false;" value="Give me more fields!"  />

它工作得很好。所以我认为问题在于moreFields()函数的位置。请确保在输入标记之前定义该函数

请尝试:

<script type="text/javascript">
    function moreFields() {
        alert("The text will be show");
    }
</script>

<input type="button" id="moreFields" onclick="moreFields()" value="Give me more fields!"  />

函数moreFields(){
警报(“将显示文本”);
}

希望有帮助。

在chrome中打开此文件,右键单击页面上的任意位置->检查元素,检查打开面板右下角是否有红色的
x
,然后单击它。是否有错误?如果有,请在此处共享先前检查的错误。没有错误显示将脚本标记放在主体标记内没有onclick met在按钮中定义的hod或者像Sajith在他的回答中说的那样我之前也尝试过onclick()函数,但仍然不起作用函数也起作用,但仍然不起作用你把脚本标签放在主体标签里面了吗?是的,我把脚本标签放在主体标签里面了,但它仍然不起作用Maverick我删除了id=moreFields,它起作用了。谢谢。你能告诉我为什么之前它不起作用吗?有什么冲突吗?因为你在哪里调用对象“moreFields”这是一个HTML元素,而不是调用函数“moreFields”,文档中的每个元素都将是一个JS对象,命名为其ID,因此您不能像元素ID一样命名函数,也可以在名称上进行阻止。我只是在Chrome和Opera中发现了这个错误,但在Firefox中没有,可能是因为表单是动态生成的。JSFIDLE与3个浏览器具有相同的行为。我也会尝试一下。谢谢ot