document.forms.gallery_form.submit是不是一个功能
问题描述:
我发誓,我有这个确切的事情在另一个页面上工作。我这样一个javascript小白很尴尬......document.forms.gallery_form.submit是不是一个功能
function delete_gallery() {
var gallery = document.getElementById('gallery_id').value;
var form = document.getElementById('gallery_form');
form.setAttribute('action', 'index.php?action=delete§ion=galleries&id='+gallery);
document.forms['gallery_form'].submit();
}
检查的元素显示,它的正确更新的操作:
<form method="post" action="index.php?action=delete&section=galleries&id=12" name="gallery_form" id="gallery_form"><input type="hidden" value="12" id="gallery_id" name="gallery_id"><p>Name: <input type="text" name="name" value="Woo"></p><p>Description:<br><textarea name="description">Dee</textarea><input type="hidden" value="2" name="artist"></p><p><input type="submit" value="Submit" name="submit">
</p></form>
这是我用来调用该函数的按钮,很表下面的表格:
<button onclick="delete_gallery()" type="button">Delete Gallery</button>
编辑:
我应该提到我试着先使用getElementById方法,ala forms.submit(); - 我有同样的错误,这就是为什么我改用document.forms []代替。
答
这是可能是因为这个形式 -
<input type="submit" value="Submit" name="submit">
内
form.submit
正在使用此输入进行重新定义。只需将名称从submit
更改为其他内容,例如submit1
并查看是否有效。
答
尝试使用getElementById
:
document.getElementById('gallery_form').submit();
并且你已经有了表单的引用刚刚提交:
function delete_gallery() {
var gallery = document.getElementById('gallery_id').value;
var form = document.getElementById('gallery_form');
form.setAttribute('action', 'index.php?action=delete§ion=galleries&id='+gallery);
form.submit();
}
+0
啊,我应该提到我也尝试过。如果这样做不起作用,我就转向了自己的方式,因为所有的教程都是这样做的。 – 2010-03-19 22:21:39
很棒的捕获,+1 – 2010-03-19 22:35:23
Safari的网络检查员同意你的看法。我不打算偷你的伟大的发现,所以这里如何调用form.submit如果更改提交按钮的名称太麻烦了(尽管它不应该):'HTMLFormElement.prototype.submit.call(document .getElementById('gallery_form'));' – zneak 2010-03-19 22:37:01
哇。我从来不会猜到它。我从现在开始更加有创意地开始命名我的按钮。 – 2010-03-19 22:47:37