0

我有一个 Html 模板,里面有一个表单。

<form id="my_form" method="post" action="/register/">
<input id="cemail" name="email" size="25" class="textbox required email" style="width: 250px"> <br><br>
<input id="csubmit" type="submit" onclick="Clicked();" value="Send" />

我还有一个 Jquery 代码用于测试介绍的电子邮件是否正确:

<script type="text/javascript" src="/js/jquery.validate.js"></script>
<script>
    function Clicked() {
        $("#my_form").validate().form();
        value = $("#cemail").val();
        alert("ufffff");
        $.get("/exists/", {email: value}, function(data) {
            $('#text')[0].innerHTML=data;   
        });
    }
</script>

直到这里一切都好。执行程序时出现我的问题。总是启动 action="/register" ,我不希望它发生。我想要这样:

如果在客户端浏览器上停用 jquery,则执行表单具有的操作。如果在客户端浏览器上激活了 jquery,只需执行“Clicked()”函数而不是表单的操作(“/register/”-> 调用 django 函数)

有人帮我这样做吗?是否可以?

4

1 回答 1

0

Clicked您需要从您的函数中返回 false 。

从 JavaScript 中的事件处理程序返回false告诉浏览器不要执行与该元素(链接或按钮)关联的默认操作。

如果您想超级正确,您实际上应该将自己附加到表单的submit操作并在那里返回 false 。这将允许用户点击返回键来提交您的表单,但阻止浏览器执行 POST:

$('#my_form').submit(function(){
    $("#my_form").validate().form();
    value = $("#cemail").val();
    alert("ufffff");
    $.get("/exists/", {email: value}, function(data) {
        $('#text')[0].innerHTML=data;   
    });
    return false;
});

如果 JavaScript 被禁用,浏览器将正常执行表单的默认操作。

于 2013-02-26T07:18:42.993 回答