单击按钮后,我试图取消表单提交。
当单击按钮时,我从带有json的check-timetable-timing-conflict中获取了一些信息。
因此,如果json附带的数据为1,我决定取消表单提交。
但是,尽管我得到1,它并不会取消表单提交。

<form role="form" method="POST" id="subform" name="subform">
...
...

<button id="submitbutton" type="submit" class="btn btn-primary" onclick="return select_course();">{% trans "EKLE" %}</button>
...
...

<script>
conflict = 0;

var select_course = function()
{
    //alert("button clicked");
    var selectcourse = document.getElementById('kurskod');
    var kurskod = selectcourse.options[selectcourse.selectedIndex].value;
    var selectcoursedate = document.getElementById('kursgunu');
    var kursgunu = selectcoursedate.options[selectcoursedate.selectedIndex].value;
    var selectcoursestart = document.getElementById('kursbasla');
    var kursbasla = selectcoursestart.value;
    var selectcourseend = document.getElementById('kursbitis');
    var kursbitis = selectcourseend.value;

    check_conflict(kurskod,kursgunu,kursbasla,kursbitis)
}

var check_conflict = function(kurskod,kursgunu,kursbasla,kursbitis) {
    $.get('/check-timetable-timing-conflict', {kurskod: kurskod, kursgunu: kursgunu, kursbasla: kursbasla, kursbitis: kursbitis}, function(data){
        objlist = JSON.parse(data);
        if (objlist[0] == 1) {
            conflict = 1;
            alert("Confictval:"+conflict);
            var warning = document.getElementById('warningdiv');
            warning.innerHTML = "Başka bir kurs ile Saat çakışması var.";

            $('#subform').submit(function(e){
                e.preventDefault();
                alert('prevent submit');
            });
        }
    });
}
</script>

最佳答案

为了防止提交form,需要从单击false时调用的onclick函数返回button。另外,为了防止提交ajax form,您还可以如下添加e.preventDefault();

注意:如果使用窗体的onsubmit方法而不是按钮的onclick方法来调用函数,则可以实现相同的效果。



var select_course = function(e) {
  e.preventDefault();
  // your logic goes here
  return false;
}

<form role="form" method="POST" id="subform" name="subform" >
    <button id="submitbutton" type="submit" class="btn btn-primary" onclick="return select_course(event);">placeholder</button>
</form>

09-17 11:30
查看更多