Javascript 输入类型的onClick函数=";按钮“;不起作用
我有这个代码,点击按钮“获取更多字段”将创建整个div的副本并创建字段。但点击按钮后,什么都没有发生。所有其他按钮都工作正常。不知道我做错了什么。 提前谢谢你的帮助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
<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