2014-09-01 78 views
0

如何使用onchang複選框提交此功能或按下按鈕?如何使用onchang複選框或按下按鈕提交此功能?

我想提交表單,並調用函數時onchang複選框或按下按鈕,

我怎樣才能做到這一點?

<form method="post" id="f1"> 
    <input type="checkbox" id="one" name="one" value="1">1<br> 
    <input type="checkbox" id="two" name="two" value="2">2<br> 
    <input type="submit" id="submit" name="submit" value="OK"/> 
</form> 



<script> 
$(document).ready(function(){ 
    $('#submit').click(function() { 
     $('#overlay').show(); 
     $.ajax({ 
      url: 'test.php', 
      type: 'POST', 
      data: $('#f1').serialize(), 
      success: function(data){ 
       $('#overlay').hide(); 
       $('#result').html(data); 
      } 
     }); 
     return false; 
    }); 
}) 
</script> 
+0

添加另一個事件偵聽器來偵聽複選框'change'事件? – 2014-09-01 14:37:20

+0

請澄清你的問題。檢查並取消選中什麼? – isherwood 2014-09-01 14:38:59

+0

謝謝你isherwood我編輯我的問題的成功,檢查並取消選中它的意思onchange ^^ – 2014-09-01 14:41:37

回答

-1

,你可以這樣做:

<form method="post" id="f1"> 
    <input type="checkbox" id="one" name="one" value="1" />1<br/> 
    <input type="checkbox" id="two" name="two" value="2" />2<br/> 
    <input type="submit" id="submit" name="submit" value="OK"/> 
</form> 
<script> 
$(document).ready(function(){ 
$('#f1').submit(function() { 
    $('#overlay').show(); 
    $.ajax({ 
     url: 'test.php', 
     type: 'POST', 
     data: $('#f1').serialize(), 
     success: function(data){ 
      $('#overlay').hide(); 
      $('#result').html(data); 
     } 
    }); 
    return false; 
}); 
$('#f1').change(function(){ 
    $(this).submit(); 
}); 
}) 
</script> 
0

DEMO ....看控制檯輸出或網絡輸出,你點擊submit按鈕或任何checkboxes的。

你想讓submit按鈕完成它的工作 - 提交表格作爲開始。點擊submit按鈕始終會觸發提交表單事件。你想要一個checkbox更改事件觸發相同的事件提交表單事件和相應的事件處理程序將負責其餘的事情。

$(document).ready(function(){ 
    $('#f1 :checkbox').on('change',function() { 
     $(this.form).submit(); 
    }); 
    $('#f1').on('submit', function(e) { 
     e.preventDefault(); 
     $('#overlay').show(); 
     $.ajax({ 
      url: 'test.php', 
      type: 'POST', 
      data: $(this).serialize(), 
      success: function(data){ 
       $('#overlay').hide(); 
       $('#result').html(data); 
      } 
     }); 
    }); 
}); 
0

我的代碼工作,有問題嗎?

<form method="post" id="f1"> 
    <input type="checkbox" id="one" name="one" value="1" onclick="xxx()">1<br> 
    <input type="checkbox" id="two" name="two" value="2" onclick="xxx()">2<br> 
    <input type="submit" id="submit" name="submit" value="OK" onclick="return xxx();"/> 
</form> 

    <script> 
    function xxx(){ 
     $('#overlay').show(); 
     $.ajax({ 
      url: 'test.php', 
      type: 'POST', 
      data: $('#f1').serialize(), 
      success: function(data){ 
       $('#overlay').hide(); 
       $('#result').html(data); 
       } 
      }); 
     return false; 
    } 
    </script> 
+0

-1(1)你想盡一切辦法避免內聯JS;它的不好的做法。您的JS和標記應該分開以便於維護。 (2)您正在序列化的表單與標記中的表單不同 - **'#advance_search_form_filters' **。 – PeterKA 2014-09-01 15:23:23

+0

是的。什麼是'$('#xxx')'? – PeterKA 2014-09-02 12:06:58

+0

- user3558931 ---對不起,我編輯成功'$('#xxx')'到'$('#f1')' 沒關係? – 2014-09-02 15:40:42

相關問題