这个错误(再次)在不同论坛上讨论过一千次,但我找不到任何可以帮助我解决问题的错误。我有一个表单,一个隐藏字段和一些链接,可以更改此字段的值并提交表单。我多次检查过。
onclick="DeleteEvent(someValue)"
,则该值会转移到被叫网站...所以它是隐藏字段... 源代码:
function DeleteEvent(id){
var hiddenId = document.getElementById('hiddenIdField');
hiddenId.value = id;
document.forms['deleteForm'].submit();
}

<form action="" method="post" name="deleteForm">
<input type="hidden" id="hiddenIdField" name="hiddenField" value="testy" />
<div style="display: none" id="divText18">
<br />
<a href="" onclick="DeleteEvent(18)">
<img src="images/delete.jpg"/>
</a>
</div>
<!--
this is the working part:
<input type="submit" onclick="DeleteEvent(18)" />
-->
</form>
&#13;
答案 0 :(得分:1)
由于有效的链接事件,您的表单无效。
对event.preventDefault()
个事件使用onclick
。
要解析函数中的事件,需要将其发送到函数。
<form action="" method="post" name="deleteForm">
<input type="hidden" id="hiddenIdField" name="hiddenField" value="testy" />
<div style="display: none" id="divText18">
<br />
<a href="" onclick="DeleteEvent(18,event)">
<img src="images/delete.jpg"/>
</a>
</div>
<!--
this is the working part:
<input type="submit" onclick="DeleteEvent(18)" />
-->
</form>
function DeleteEvent(id,event){
event.preventDefault();
var hiddenId = document.getElementById('hiddenIdField');
hiddenId.value = id;
document.forms['deleteForm'].submit();
}
答案 1 :(得分:0)
此代码中的问题是图像之前的链接标记,它在提交之前发送浏览器无处点击,因此提交无法正常工作。只需给onclick事件图像或给“javascript:;”作为href保持浏览器在页面上。
function DeleteEvent(id){
var hiddenId = document.getElementById('hiddenIdField');
hiddenId.value = id;
document.getElementById("deleteForm").submit();
}
<form action="" method="POST" id="deleteForm">
<input type="text" id="hiddenIdField" name="hiddenField" value="testy" />
</form>
<div style="display: inline" id="divText18">
<img src="images/delete.jpg" style="cursor: pointer;" onclick="DeleteEvent(18)" />
</div>
但如果您必须将其与href一起使用,请将其保留在页面上
<a href="javascript:;" onclick="DeleteEvent(18)">
<img src="images/delete.jpg />
</a>