首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django/ JQuery :无法停止Django表单提交的JQuery (preventDefault()等不起作用)

Django/ JQuery :无法停止Django表单提交的JQuery (preventDefault()等不起作用)
EN

Stack Overflow用户
提问于 2015-11-19 11:32:27
回答 2查看 1.6K关注 0票数 1

我正在尝试做一些简单的客户端验证,因为我的表单非常简单,只需要知道它的所有字段是否都已填写。

以下是模板的相关部分:

代码语言:javascript
复制
{% block content %}
 <form id="location_form" action="{% url "mountain_results" %}" method="GET">
    <h2>Enter your location</h2>
    <input id="location_autocomplete" placeholder="Enter your address" name="address"
    onFocus="geoLocate()" type="text"></input>

    <h2>Enter your maximum drive time</h2>
    <input name="drive_time"
    placeholder="Enter your maximum drive time (hours)" type="text"></input>

    <h2>Are you shredding today or tomorrow?</h2>
    <select name="shred_day">
        <option value="today">Today</option>
        <option value="tomorrow">Tomorrow</option>
    </select>
    <br>
    <button type="submit">Find me snow</button>
</form>
{% endblock content %}

以下是JS的相关部分:

代码语言:javascript
复制
$('#location_form').on('submit', function(event) {
    alert('dude you totally clicked');
    event.preventDefault();
    return false;
});

有趣的是,警报甚至不会触发,所以感觉事件处理程序甚至没有被触发。有什么想法吗?正如您所看到的,我尝试了两种常用的方法来防止触发默认事件,但都没有效果。

EN

回答 2

Stack Overflow用户

发布于 2015-11-19 11:55:08

您可以使用onsubmit事件处理程序来验证表单。我已经将演示的action属性设置为空。您可以将其与onsubmit一起添加。另外,有没有什么特别的原因导致使用GET方法。这是一段代码片段。

HTML

代码语言:javascript
复制
<form id="location_form" action="" method="POST" onsubmit="return _validateForm()">
    <h2>Enter your location</h2>
    <input id="location_autocomplete" placeholder="Enter your address" name="address"
    onFocus="geoLocate()" type="text"></input>

    <h2>Enter your maximum drive time</h2>
    <input name="drive_time"
    placeholder="Enter your maximum drive time (hours)" type="text"></input>

    <h2>Are you shredding today or tomorrow?</h2>
    <select name="shred_day">
        <option value="today">Today</option>
        <option value="tomorrow">Tomorrow</option>
    </select>
    <br>
    <button type="submit">Find me snow</button>
</form>

JS

代码语言:javascript
复制
function _validateForm(){
 alert('dude you totally clicked');
}

这是一个DEMO.Hope,这将是有帮助的

票数 0
EN

Stack Overflow用户

发布于 2015-11-19 17:42:10

这是另一种方法。变化

代码语言:javascript
复制
<button type="submit">Find me snow</button>

使用

代码语言:javascript
复制
<button id="submit_form">Find me snow</button>

并添加以下JavaScript代码

代码语言:javascript
复制
$('#submit_form').click(function(){
    if(for_is_valid()){
       $('#location_form').submit();
    }
    else{
       alert('Your message');
    }
});

希望这能行得通。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33794791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档