当用户在IE8中输入时,如何停止提交表单的经典asp页面?

时间:2013-07-16 14:20:17

标签: javascript jquery html asp-classic

我有一个ASP经典页面,并且有一个登录对话框(使用jquery制作)。用户单击登录,弹出对话框并要求输入密码(无需用户名。小组)。如果他们输入密码并实际点击登录,一切正常。

然而,如果他们点击输入,不知何故,“表单”提交,即使没有表单,并且网址更新为http://xxx.xxxx.xxxx.asp?password=whatever并且我的登录代码没有执行(因为登录按钮不是'点击)。奇怪的是,我刚刚发现,如果用户转到http://xxx.xxxx.xxxx.asp?而不是http://xxx.xxxx.xxxx.asp(注意结尾处的问号),点击对话框内的输入不会做任何事情。

知道为什么会发生这种情况以及如何阻止它?

编辑:这是对话框的HTML:

<div id="login-form" title="Log in">
    <p class="validateTips">Please enter your password.</p>
    <label for="password">Password</label>
    <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
</div>  

这里是jquery:

$( "#login-form" ).dialog({
      autoOpen: false,
      height: 350,
      width: 350,
      modal: true,
      buttons: {
        "Log In": function() {
          var bValid = true;
          allFields.removeClass( "ui-state-error" );


          if ( password.val() == 'skeet' ) {    
                        setCookie("loggedIn","true",1);
                        alert("Logged in");
            $( this ).dialog( "close" );        
                        location.reload();                      
          }
                    else
                    {
                        alert("Invalid Password");
                    }
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
      }
    });

3 个答案:

答案 0 :(得分:2)

请勿使用<input type="submit">,请使用:

<input type="button" onclick="document.forms[0].submit()">

...假设您的网页上只有一个表单。

答案 1 :(得分:1)

我很确定将输入嵌套在表单之外是不好的做法。您的浏览器可能会在内部为您添加它。 您可以尝试在输入周围添加一个表单吗?

<form onsubmit="return false">
  <div id="login-form" title="Log in">
  ...
  </div>
</form>

点击ENTER时,您的页面不应提交。

此处示例:http://jsfiddle.net/qXrjD/

问题是您之后无法提交表单,但您可能不会遇到此问题。

答案 2 :(得分:0)

我过去曾经用过onkeydown处理过这个问题,我现在找不到我的旧代码,但是这样的话:

<input type="password" onkeydown="EnterHandler();" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />

那么这个JS

function EnterHandler(){
    if (window.event.keyCode == 13){
        window.event.returnValue =false;
        return null;
    }
}