javascript - Event.preventDefault() 和表单中的复选框?

标签 javascript jquery ajax

我有一个通过ajax发送的表单,上面带有event.preventdefault,因此它不会自动发送,但这会阻止复选框发挥作用...
我该如何解决这个问题...
JSfiddle

$('[name="id"]').each(function (index, el) {
  var getval = $(this).val();
  console.log(getval);
  $('#form_pub_priv_' + getval).on('click', function (event) {
    event.preventDefault();
    var arr_unchecked_values = $('input[type=checkbox]:not(:checked)').map(function () {
      return this.value;
    }).get();
    var formvalues = $('#form_pub_priv_' + getval + ' [name="id"]').serialize();
    var dataJoin = '&mod=' + arr_unchecked_values + '&' + formvalues;
    console.log(dataJoin);
    $.ajax({
      url: 'unpublish-Lyst.html',
      type: 'POST',
      data: dataJoin
    })
    .done(function (data) {
      console.log(data);
    })
    .fail(function () {
      console.log("error");
    })
    .always(function () {
      console.log("complete");
    });
  });
});

最佳答案

您间接停止了复选框中的click事件,这就是您的复选框不起作用的原因。

  $('#form_pub_priv_' + getval).on('click', function (event) {
      event.preventDefault();   //Remove this!
      var arr_unchecked_values = ...

要防止表单被提交,您应该在 submit 表单事件中执行此操作。

  $('#form_pub_priv_' + getval).submit(function(event){
      ...
      event.preventDefault(); //Here it's ok
  });

干杯

关于javascript - Event.preventDefault() 和表单中的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21026827/

相关文章:

javascript - Date.toLocaleString() 在 Chrome 中损坏?

javascript - trim div 的文本但保留标记

javascript - 使用 jQuery 和 Ajax 在 href 中捕获和发送参数

javascript - 使用 AJAX 将表单提交到两个位置

javascript - 水平表单的 Bootstrap 验证

javascript - 使用 alert() 修复的 JavaScript/jQuery 奇怪问题

javascript - Bootstrap 3,在一行产品后插入一个div

ajax - 验证错误后没有更新字段

jquery - 事件链接 jquery superfish

php - 获取多个帖子ID wordpress