jquery,AJAX表单提交不起作用.页面崩溃



我正在尝试在不重新加载页面的情况下获得提交表单。

这是脚本:

$(function() {
    $("#submit").click(function() {
        var email = document.getElementById('emailaddress');
        var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(email.value)) {
            $('#invalidmail').show();
            var t=setTimeout(function(){$('#invalidmail').fadeOut("slow");},2000);
            email.focus;
            return false;
        } else {    
            $.ajax({
                type: "POST",
                url: "traces_form_handler.cgi",
                data: email,
                success: function(){
                    alert("success!");
                }
            });
            alert("success!");
            return false;
        };
      });  
});
</script>

这是html

<form name="form" method="post">
    Email: <input type="text" name="email" id="emailaddress" />
    <input type="submit" value="Submit" id="submit"/>
    </form>        
   <p id="invalidmail">Ops! The address you provided is not valid. Please retry.</p>

它一直工作到无效邮件部分,但如果我提交了一个有效的电子邮件地址,浏览器就会崩溃。

有什么建议吗?

感谢

我不知道这是否会使浏览器崩溃。但是,您将一个dom元素作为数据发送到ajax请求,我想您只想发送它的值。

        $.ajax({
            type: "POST",
            url: "traces_form_handler.cgi",
            data: { email: email.value },//Check here in your code
            success: function(){
                alert("success!");
            }
        });

此属性导致问题

url: "traces_form_handler.cgi",

我在我的浏览器FF 10.0.2 上测试了它

On Error控制台错误为:错误:未捕获的异常:[exception…"无法转换JavaScript参数"nsresult:"0x80570009(NS_Error_XPC_BAD_convert_JS)::line 7601"data:no]

Solution: url:"some_valid_url_.php"

您可以使用表单提交事件,它;s更好的

HTML

<form id="myForm" name="form" method="post">
  Email: <input type="text" name="email" id="emailaddress" />
  <input type="submit" value="Submit" id="submit"/>
</form> 
<p id="invalidmail">Ops! The address you provided is not valid. Please retry.</p>

JS

$(function() {
​$("#myForm").on('submit', function(e){
e.preventDefault();
var email=$("#emailaddress");
var filter = /^w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}$/;
    if (!filter.test(email.value)) {
        $('#invalidmail').show();
        var t=setTimeout(function(){
            $('#invalidmail').fadeOut("slow");},2000);
        email.focus;
        return false;
    }
    else 
    {    
        $.ajax({
            type: "POST",
            url: "my_server-page.php",
            data: email.val(),
            success: function(data){
                alert("success!");
            }
        });
    }
});​​
});

最新更新