javascript - 如何阻止表单自动提交? (Django/jQuery)

标签 javascript jquery html django forms

我遇到了一个问题,即使我没有告诉它(在 Javascript 中),我的表单也会提交。我有一个表单按钮的事件处理程序,它检查输入是否是大于 0 的有效整数,并对其进行处理。问题是,即使它发现这是错误的,表单仍然会提交。

这是我的表单代码:

<form id="case_form" method="post" action="/dms/create/">
    {% csrf_token %}
    <h3>Case ID</h3>
    <input name="caseID" id="caseNum" type="text" class="form-control" placeholder="ID of Case to create" required
           autofocus><br/>
    <button class="btn btn-lg btn-primary btn-block" id="submitButton">Create Case</button>
</form>

还有我的 Javascript 事件处理程序。

$('#submitButton').click(function () {
    numVal = $("#caseNum").val();
    if (Math.floor(numVal) == numVal && $.isNumeric(numVal) && numVal > 0){
        $("#case_form").submit();
    }else{
        $("#errorDisplay").show();
        //Code gets here but still submits once leaving function
    }
});

最佳答案

这是我的第一个答案:D

试试这个。

<form onsubmit="return fnValidate()" ...> ... </form>

Javascript:

function fnValidate(){ 
    var numVal = $("#caseNum").val();
    if (Math.floor(numVal) == numVal && $.isNumeric(numVal) && numVal > 0){
        return true;
    }else{
       $("#errorDisplay").show();
       return false;
    }
}

当 fnValidate 返回 True 时,您的表单将被提交。当函数返回 false 时,不会提交。

祝你好运!

关于javascript - 如何阻止表单自动提交? (Django/jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367167/

相关文章:

jquery - jquery中如何选择所有id?

javascript - 修改 jQueryUI 日期选择器按钮

javascript - 我怎样才能填充已经穿过的svg路径?

php - Ajax 和 PHP : MySQL Query Not Fetching Any Rows

jquery - 如何让 jQuery 解析表示为有效 json 的错误响应?

javascript - 在webGL中用.jpg图像覆盖矩形

html - CSS 下拉菜单间距

javascript - 类型错误 : e is undefined in d3. min.js

javascript - CasperJS 循环或遍历多个网页?

javascript - 如何判断两个元素是否接触