2016-03-28 86 views
2

我使用引導模式對話框。 我的模式:按鈕單擊後輸入值爲空

<div id="myModal" class="modal fade"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
       <h4 class="modal-title">Hello</h4> 
      </div> 
      <div class="modal-body"> 
       Your name: 
       <input id="colorData" name="colorData" type="hidden" value=""/> 
       <input id="nameData" name="nameData" class="input-lg" type="text" value=""/> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button id="postAnswer" type="submit" class="btn btn-primary">Submit</button> 
      </div> 
     </div> 
    </div> 
</div> 

我有按鈕:

<div align="center" style="margin-bottom: 20px"> 
     <button value="all" type="button" class="btn btn-lg btn-default">All</button> 
     <button value="green" type="button" class="btn btn-lg btn-success">Green</button> 
     <button value="blue" type="button" class="btn btn-lg btn-info">Blue</button> 
    </div> 

,我有腳本:( 「BTN」)。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".btn").click(function() { 
      var color = $(this).val(); 
      $(".modal-body #colorData").val(color); 
      // $('#colorData').val() - is not empty 
      $("#myModal").modal('show'); 
     }); 

     $('#postAnswer').click(function (e) { 
      e.preventDefault(); 
      $.ajax({ 
       // $('#colorData').val() is empty 
       // $('#nameData').val() is not empty (I write this on dialog) 
       url: "@Url.Action("WriteAnswer", "Home")?name=" + $('#nameData').val() + "&color=" + $('#colorData').val(), 
       type: 'POST', 
       data: $('#nameData').serialize(), 
       success: function (data) { 
        //alert('successfully submitted'); 
       } 
      }); 

      $("#myModal").modal('hide'); 
     }); 

    }); 
</script> 

後通話功能$單擊元素$('#colorData')。val()不爲空。但是!如果我點擊模式上的按鈕,然後輸入空值和輸入值colorData爲空。爲什麼?我想將數據發佈到控制器,但值被重置。對不起我的英語不好。

+3

因爲你的'postAnswer'按鈕也是'class =「btn」'(so'var color = $(this).val();''null') –

+0

@StephenMuecke,你說得對!謝謝))) –

+0

@DenisBubnov,更好地處理'ID'屬性,你必須始終保持ID獨特.. – Rayon

回答

1

<button>id="postAnswer"元素也有class="btn",所以當你點擊它時,$(".btn").click(function() {方法也被稱爲和var color = $(this).val();回報null(因爲該按鈕沒有value屬性。

要正確處理這個問題,給一個附加的類名的3「顏色」按鈕(比如說)

<button value="all" type="button" class="color btn btn-lg btn-default">All</button> 
<button value="green" type="button" class="color btn btn-lg btn-success">Green</button> 
<button value="blue" type="button" class="color btn btn-lg btn-info">Blue</button> 

和改變所述第一腳本以

$(".color").click(function() { 
    var color = $(this).val(); 
    $(".modal-body #colorData").val(color); 
    $("#myModal").modal('show'); 
});