2

如果您有 3 个表单(如下所示)并且您将其中两个表单设置为不显示(display:none;)并且您使用 javascript 来切换每个表单,当您将它们设置为隐藏时,这些表单设置为可见和您尝试按 Enter 提交表单,它不会提交。

如果默认情况下第一个表单可见,则将提交的唯一表单。

这适用于 ie7 和 ie6,但不适用于 ie8(如图)

我正在使用 jquery 来隐藏和显示我的表单,但这应该不是问题。我也尝试过使用不同的 css 规则(如可见性:隐藏),但仍然是同样的问题;

<a href="" onclick="$('#form1').show();$('#form2').hide();$('#form3').hide();">form1</a>
  <a href="" onclick="$('#form1').hide();$('#form2').show();$('#form3').hide();">form2</a>
  <a href="" onclick="$('#form1').hide();$('#form2').show();$('#form3').hide();">form3</a> 

<div id="form1">
      <form method="get"  action="test1/" >
        <input type="text" name="text1" id="text1" />
        <input type="text" name="text2" id="text2" />
        <input type="text" name="text3" id="text3" />
        <input type="submit" name="submit1"  value="submit1"/>
      </form>
  </div>

<div id="form2" >
<form method="get" action="test2/" style="display:none" >
<input type="text" name="text4" id="text4" />
<input type="text" name="text5" id="text5" />
<input type="text" name="text6" id="text6" />
<input type="submit" name="submit2"  value="submit2"/>
</form>
</div>

<div id="form3" >
  <form method="get" action="test3/" style="display:none" >
      <input type="text" name="text7" id="text7" />
      <input type="text" name="text8" id="text8" />
      <input type="text" name="text9" id="text9" />
      <input type="submit" name="submit3"  value="submit3"/>
  </form>
</div>
4

2 回答 2

1

恐怕我这里没有 IE 8 可供测试,但您可以尝试不同的 CSS 属性作为解决方法:

<style type="text/css">
.hide {
    position: absolute;
    top: -9999px;
    left: -9999px;
}
</style>

<a href="" onclick="$('#form1').removeClass('hide');$('#form2').addClass('hide');$('#form3').removeClass('hide');">form1</a>
<a href="" onclick="$('#form1').addClass('hide');$('#form2').removeClass('hide');$('#form3').addClass('hide');">form2</a>
<a href="" onclick="$('#form1').addClass('hide');$('#form2').removeClass('hide');$('#form3').addClass('hide');">form3</a>

这将具有与 相同的视觉效果display: none;

于 2009-05-08T21:59:43.883 回答
0

我看到你正在使用 jQuery - 你可能会做一些类似的事情

$(function() {  // execute when document ready
  $("input").keyup(function(e) {
    if (e.keyCode==13) { // enter 
      var form = $(this).parents("form").get(0); // first <form> tag that is a parent.
      if (form) form.submit();
      return e.preventDefault(); // stop it from activating in other browsers.
    }
  });
});

这应该确保当您点击输入时表单提交。

于 2009-05-08T17:28:02.757 回答