在禁用javascript时执行Django函数

时间:2013-02-26 07:10:35

标签: django jquery django-forms

我有一个带有表单的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>

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

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

有人帮我这么做吗?有可能吗?

1 个答案:

答案 0 :(得分: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,浏览器将正常执行表单的默认操作。