IE7 - <按钮>不提交表单</button>

时间:2010-10-26 02:07:36

标签: javascript internet-explorer-7

如何在IE7中制作标签提交表单,同时进行表单上设置的所有表单验证?

如果我只是提交document.forms[0].submit();,则忽略表单验证。

修改: 每个人都喜欢告诉我使用输入标签...这将汇总表格,但不会在我的情况下工作,这就是为什么我询问按钮标签......

<form action="my/script" onsubmit="return ValidateFunc();">
<button> <img src="image/do_this_with_input_tag.png"> Some Text </button>
</form>

6 个答案:

答案 0 :(得分:9)

首先有一个提交类型为

的按钮
<input type="submit" value="submit" />

在表单标记中,将onsubmit()事件包含为

<form
     action="/path/to/server/side/script"
     name="testform" 
     onsubmit="return validate()"
     >

如果表单验证通过,validate()函数应返回true,如果验证失败,则false函数应返回function validate(){ if(...){//valid return true; }else{//not valid return false; } } 。 e.g。

<form action="my/script" onsubmit="return ValidateFunc();">
<button type="submit"> <img src="image/do_this_with_input_tag.png"> Some Text </button>
</form>

修改 始终指定按钮类型。如果没有指定,在IE中它默认为“按钮”,而在Chrome和Firefox中它默认为“提交”。

{{1}}

如果您需要正确的答案,将来在您的问题中包含更多详细信息。

答案 1 :(得分:2)

我只是通过向按钮添加type="submit"来解决这个问题。

<button>Submit</button>未在IE7中提交。

<button type="submit">Submit</button>确实在IE7中提交。

答案 2 :(得分:1)

我猜验证只能从“提交”按钮识别“提交”事件。

您应该使用“提交”输入而不是“按钮”输入。然后验证机制将能够拦截提交事件。你可以在validation.submit函数中调用form.submit。

以下是代码:

<form id="theForm">
   ...
   <input type="submit" value="submitMe"/>
</form>

在Javascript中:

$('#theForm').validate({
    ...
    submitHandler: function() {
        // do some trick here
        ...
        // submit the form
        $('#theForm').submit();
    }
});

答案 3 :(得分:1)

我使用jquery提交按钮。如果我使用直接javascript,如果绕过验证设置。 Jquery的表单提交在提交之前运行验证。

经过额外的研究后,即使使用type =“submit”,标签也无法在旧版IE中提交表单。

答案 4 :(得分:0)

我正在使用(虚拟/不可见)输入字段,在此表格中使用此css定位绝对:

<input class="dummy" type="submit" />

.dummy {
    position:absolute;
    bottom:0px;
    right:0px;
    padding:0px;
    margin:0px;
    border:0px;
    font-size:0px;
    line-height:0px;
}

请避免使用display:none或visibility:hidden或width:0px等。仅使用我提供的此css。

答案 5 :(得分:0)

我在IE11中遇到了与另一种形式的提交按钮相同的问题:

<form id="form1">
  ...
</form>
<form id="form2">
  ...
    <button type="submit" form="form1">OLA KE ASE</button>
  ...
</form>

你可以用javascript来解决它,我用通用的方式用jQuery做到了。

$(document).ready(function() {
    $('button[type=submit]').on('click', function() {
        if ($(this).attr('form') != '') {
            document.getElementById($(this).attr('form')).submit();
        }
    });
});