【问题标题】:Execute Django function just when javascript is dissabled仅在禁用 javascript 时执行 Django 函数
【发布时间】:2013-02-26 07:10:34
【问题描述】:

我有一个 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 函数)

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

【问题讨论】:

  • 您可以直接使用onclick="Clicked(); return false;" -- 但更好的方法是将绑定和后续函数移至外部 JS。
  • @ahren 我做到了,但表单操作仍在启动。如果我设置 return false 我不希望表单的操作将被启动
  • @ahren 我有一个小错误。它的工作原理是 onclick="Clicked(); return false;"非常感谢。

标签: django jquery django-forms


【解决方案1】:

您需要从 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,浏览器将正常执行表单的默认操作。

【讨论】:

  • 我的问题是按钮没有做任何事情。表单是执行默认操作的对象。那么,是否可以按照您所说的(返回 false)执行相同的操作,但指定表单而不是“启动”Clicked 函数的元素?
  • @Shedd 如果我设置 `code´onclick="Clicked(); return false;"
  • 它实际上可能在没有返回 false 的情况下工作;它只是在浏览器也在进行 POST 时发生。但是,是的,只需将 return false 添加到您的 onclick 将与从 Clicked 函数返回 false 做同样的事情。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多