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&section=galleries&id='+gallery); 
    document.forms['gallery_form'].submit(); 
} 

检查的元素显示,它的正确更新的操作:

<form method="post" action="index.php?action=delete&amp;section=galleries&amp;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并查看是否有效。

+0

很棒的捕获,+1 – 2010-03-19 22:35:23

+0

Safari的网络检查员同意你的看法。我不打算偷你的伟大的发现,所以这里如何调用form.submit如果更改提交按钮的名称太麻烦了(尽管它不应该):'HTMLFormElement.prototype.submit.call(document .getElementById('gallery_form'));' – zneak 2010-03-19 22:37:01

+0

哇。我从来不会猜到它。我从现在开始更加有创意地开始命名我的按钮。 – 2010-03-19 22:47:37

尝试使用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&section=galleries&id='+gallery); 
    form.submit(); 
} 
+0

啊,我应该提到我也尝试过。如果这样做不起作用,我就转向了自己的方式,因为所有的教程都是这样做的。 – 2010-03-19 22:21:39