2010-03-19 5 views
1

맹세 컨데, 다른 페이지에서이 정확한 작업을했습니다. 그것은에있어, 여기에 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> 

내가 함수를 호출 할 때 사용하는 버튼입니다 : 나는 요소를 검사

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(); 
} 

이 제대로 조치를 업데이트 할 것 보여줍니다 ... 그것은 당황 이러한 자바 스크립트 멍청한 놈이야

<button onclick="delete_gallery()" type="button">Delete Gallery</button> 

가 편집

:

내가 언급해야 형태로 아래 표 먼저 getElementById 메소드를 사용해 보았습니다. ala forms.submit(); - 나는 같은 오류가있어서, 대신 document.forms []를 사용하도록 전환했습니다.

document.getElementById('gallery_form').submit(); 

과 이미 형식에 대한 참조를 가지고 그냥 제출 :

답변

9

그것은 형상 -

<input type="submit" value="Submit" name="submit"> 
내부 아마도이 때문에입니다

form.submit이 입력으로 재정의됩니다. submit에서 submit1과 같은 다른 이름으로 이름을 변경하고 올바르게 작동하는지 확인하십시오.

+0

그레이트 캐치, +1 –

+0

Safari의 웹 검사관이 귀하의 의견에 동의합니다. 위대한 찾기를 훔치려 고하지는 않을 것입니다. 제출 버튼의 이름을 변경하면 너무 많은 문제가 발생하지만 form.submit을 호출하는 방법이 있습니다 (HTMLHTMLElement.prototype.submit.call (document .getElementById ('gallery_form')); ' – zneak

+0

와우. 나는 결코 그것을 짐작하지 못했을 것이다. 지금부터 내 버튼의 이름을 더 창의적으로 지정하기 시작합니다. –

0

getElementById를 사용해보십시오

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

아, 저도 그렇게 해 봤어야합니다. 그것이 작동하지 않을 때, 나는 모든 튜토리얼이 그런 식으로 그것을했기 때문에 내가 가지고 있었던 방식으로 전환했다. –

관련 문제