[javascript] JavaScript에서 “제출이 함수가 아닙니다”오류

누구 든지이 코드에 어떤 문제가 있는지 말해 줄 수 있습니까? JavaScript로 양식을 제출하려고했지만 “.submit is a function”오류가 표시되었습니다. 코드에 대한 자세한 내용은 아래를 참조하십시오.

<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">
    function submitAction()
    {
        document.frmProduct.submit();
    }
</script>

나는 또한 이것을 시도했다 :

<script type="text/javascript">
    function submitAction()
    {
        document.forms["frmProduct"].submit();
    }
</script>

둘 다 같은 오류를 보여줍니다 🙁



답변

제출은 기능이 아닙니다

제출 버튼 또는 다른 요소의 이름을 지정했음을 의미합니다 submit. 버튼 이름을btnSubmit 통화가 마술처럼 작동합니다.

제출 단추의 이름을 지정 submit()하면 양식 의 기능 이 대체 됩니다.


답변

<form action="product.php" method="post" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">

document.getElementById("submit_value").onclick = submitAction;

function submitAction()
{
    document.getElementById("frmProduct").submit();
    return false;
}
</script>

편집 : 실수로 ID를 바꿔 놓았습니다.


답변

이름이 같은 다른 양식이 없는지 확인하고 양식에 name = “submit”또는 id = “submit”이 없는지 확인하십시오.


답변

변경할 기회가없는 경우 다음과 같이 name="submit"양식을 제출할 수도 있습니다.

function submitForm(form) {
    var submitFormFunction = Object.getPrototypeOf(form).submit;
    submitFormFunction.call(form);
}


답변

마스터 페이지를 사용하여 MVC 응용 프로그램을 만들 때도 동일한 문제가 발생했습니다. 위에서 언급 한 바와 같이 이름으로 ‘submit’을 가진 요소를 찾으려고 시도했지만 그렇지 않았습니다.

내 경우에는 내 페이지에 여러 개의 태그를 만들었으므로 올바른 양식을 참조하는 데 문제가있었습니다.

이 문제를 해결하려면 사용할 양식 객체를 버튼이 처리하도록하십시오.

onclick="return SubmitForm(this.form)"

그리고 js와 함께 :

function SubmitForm(frm) {
    frm.submit();
}


답변

이 주제에는 이미 많은 답변이 있지만 2013 년 4 월 21 일부터 Neil E. Pearson의 의견이 수정되었습니다.

제출 버튼이 #submit 인 경우 다른 양식 인스턴스의 submit () 메소드를 도용하여 해결할 수 있습니다.

그의 방법에 대한 나의 수정과 나를 위해 일한 것 :

document.createElement('form').submit.call(document.getElementById(frmProduct));


답변

양식 요소에 제출 이름을 지정하면 제출 속성이 단순하게 표시됩니다. 이름이 submit 인 양식 요소가없고 제출 기능에 제대로 액세스 할 수 있어야합니다.