2015-06-17 212 views
0

我有我的按鈕,頁面發送POST請求點擊

<button type="reset" class="abort-selection">Clear</button> 

。當我點擊它的所有領域和複選框正在重置爲默認值。沒關係。

現在我想單擊此按鈕後發送發佈請求。 我這樣做是對現有發送POST功能

<script> 


$(function() { 

$('div.list input[type=checkbox]').on('change',onValueChange);  
$('div.selector select').on('change', onValueChange); 
$('button[type=reset]').on('click', onValueChange); 

function onValueChange() { 

     var Checked = {}; 
     var Selected = {}; 
    // Hold all checkboxes 
     $('div.list input[type=checkbox]:checked').each(function() { 
      var $el = $(this); 
      var name = $el.attr('name'); 
      if (typeof (Checked[name]) === 'undefined') { 
       Checked[name] = []; 
      } 
      Checked[name].push($el.val()); 
     }); 
    // Hold all dropdowns 
     $('div.list select').each(function() { 

      var $el = $(this); 
      var name = $el.attr('name'); 

       if (!!$el.val()) { 
        Selected[name] = $el.val(); 
       } 
     }); 

// Put all together to POST 
    $.ajax({ 
     url: '/Search.asp', 
     type: 'POST', 
     data: $.param(Selected) + "&" + $.param(Checked), 
     dataType: 'text', 
     success: function (data) { 
      $("#ExSearchForm").html(data) 
       .find('div.list input[type=checkbox],div.selector select').each(function() { 
        var $el = $(this); 
        var name = $el.attr('name'); 
        var value = $el.attr('value'); 

        if (Checked[name] && Checked[name].indexOf(value) !== -1) { 
         $el.prop('checked', true); 
        } 
        if (Selected[name]) { 
         $el.val(Selected[name]); 
        } 
       }); 
     } 
    }); 
}; 
}); 
</script> 

這樣復位不工作,看起來像onValueChange功能防止正在重置,做自己的功能。

那麼如何重置,併發送此復位後複選框和下拉菜單後請求?

+0

你有沒有斷斷續續的打斷。在鉻它'CMD + ALT +我 - >來源 - >選擇你的JS和設置斷點'。驗證你是否達到了方法 – WebQube

+0

是的,沒有錯誤,看起來像'

回答

2

如果表單提交該會工作

把AJAX成功的$('#form-id').reset();末功能
替換 「#形式-ID」 與您的表單ID

$.ajax({ 
     url: '/Search.asp', 
     type: 'POST', 
     data: $.param(Selected) + "&" + $.param(Checked), 
     dataType: 'text', 
     success: function (data) { 
      $("#ExSearchForm").html(data) 
       .find('div.list input[type=checkbox],div.selector select').each(function() { 
        var $el = $(this); 
        var name = $el.attr('name'); 
        var value = $el.attr('value'); 

        if (Checked[name] && Checked[name].indexOf(value) !== -1) { 
         $el.prop('checked', true); 
        } 
        if (Selected[name]) { 
         $el.val(Selected[name]); 
        } 
       }); 
      $('#form-id').reset(); 
     } 
    }); 

嘗試把這些代碼

//this will reset your checkboxes 
$('div.list input[type=checkbox]').removeAttr('checked'); 
//this will reset your select box 
$('div.selector select option').removeAttr('selected'); 
+0

我沒有窗體全部在divs中,我也想重置之前發佈不是 –

+0

對不起。我現在更新它。你可以把這兩條線放在你需要的任何地方。它會重置您的複選框並選擇框 –

+0

不!我需要在發送POST重置值 –