2017-03-01 127 views
0

的header.php輸入值沒有在jQuery中拾起?

<div id="rename-content" class="hide"> 
    <form class="popover-form"> 
     <div class="popover-form-content"> 
     <div class="material-input-group stretched"> 
      <input type="text" placehold="Title" id="new-row-name"> 
     </div> 
     </div> 

     <div class="popover-footer pull-right"> 
     <button type="button" class="btn btn-default flat close-popover">Cancel</button> 
     <button type="button" class="btn btn-default flat rename-row">Rename</button> 
     </div> 
    </form> 
    </div> 

footer.php$(document).ready()

 $('.edit-row-lbl').popover({ 
      title: "Rename Row", 
      content: function(){ 
      return $("#rename-content").html(); 
      }, 
      html: true, 
      placement: 'bottom', 
      trigger: 'manual' 
     }); 

     $('.edit-col-lbl, .edit-row-lbl').click(function() 
     { 
      if ($(this).hasClass('edit-col-lbl')) 
      { 
       to_rename = 'col'; 
       col_id_to_rename = $(this).data('col-id'); 
       $('.edit-col-lbl').popover('show'); 
      } 
      else 
      { 
       to_rename = 'row'; 
       row_id_to_rename = $(this).data('row-id'); 
       $('.edit-row-lbl').popover('show'); 
      } 

      $('.edit-col-lbl, .edit-row-lbl').not(this).popover('hide'); 
     }); 

     $('body').off().on('click', '.rename-row', function() 
     { 
      var new_row_name = $('#new-row-name').val(); 

      console.log('Rename row clicked!'); 
      console.log('New row name: ' + new_row_name); 
      console.log('Row id to rename: ' + row_id_to_rename); 

      $.ajax({ 
      type : 'POST', 
      url : base_url + 'row/renameRow', 
      data : { 
       'row_id' : row_id_to_rename, 
       'row_name' : new_row_name 
      }, 
      success: function(message) 
      { 
       if (message == 'success') 
       { 
       console.log('Renaming successful'); 
       window.location = window.location; 
       } 
       else 
       { 
       console.log('Error >> ' + message); 
       } 
      }, 
      error: function(xhr, error) 
      { 
       console.log(xhr.responseText); 
       console.log(error); 
      } 
      }); 
     }); 

在控制檯中,消息顯示,除了行名稱爲空白。我沒有得到任何錯誤,只是輸入沒有得到迴應。當我嘗試打印數值長度時,它顯示爲1.

+0

如果你在一個空的jQuery對象上調用'.val()',它會返回'undefined',而不是「空白」,所以如果你空白,這意味着jQuery確實找到了輸入問題。你期望輸入有什麼價值? – nnnnnn

+0

我輸入'test'作爲一個值,所以在控制檯應該顯示'新行名稱:測試'。目前還沒有確定的驗證。只需要確保它進入數據庫@nnnnnn – herondale

+0

一個愚蠢的問題,但是......'header.php'和'footer.php'都包含在同一頁上?大概你沒有得到一個佔位符,因爲'placehold ='而不是'placeholder ='?那可能會「腐蝕」''嗎?嘗試修復'placeholder',看看是否得到有效的輸入。 –

回答

1

我不得不這樣做:

new_row_name = $('.popover #new-row-name').val(); 

將其綁定到類。現在它拿起價值。謝謝您的幫助!

0

這是因爲變量'row_id_to_rename'在$('body')內的點擊函數中未知。

您必須聲明變量在頂部,這些功能以外:

$(document).ready(function() { 
    var row_id_to_rename; // <- put here! 
    $('.edit-row-lbl').popover({ 
     ... 
    }); 
    $('.edit-col-lbl, .edit-row-lbl').click(function() { 
     ... 
    }); 
    $('body').off().on('click', '.rename-row', function() { 
     ... 
    }); 
}); 
+1

問題是'new_row_name',而不是'row_id_to_rename';) –

+0

我截斷了我的代碼。我確實有這樣的聲明,因爲我首先嚐試使用外部js文件,如下所示:' \t ...' – herondale

+0

不好意思啊,你有沒有解釋那,大聲笑。我會嘗試找到問題並作出另一個答案,也許,如果我知道答案;) –

0

輸入被拾起就是該值是空字符串。

<input type="text" placehold="Title" id="new-row-name"> 

如果它會在您的控制檯中沒有發現你會看到「新行名稱:未定義

<html> 
 
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
     $('.edit-col-lbl, .edit-row-lbl').click(function() 
 
     { 
 
      if ($(this).hasClass('edit-col-lbl')) 
 
      { 
 
       to_rename = 'col'; 
 
       col_id_to_rename = $(this).data('col-id'); 
 
       $('.edit-col-lbl').popover('show'); 
 
      } 
 
      else 
 
      { 
 
       to_rename = 'row'; 
 
       row_id_to_rename = $(this).data('row-id'); 
 
       $('.edit-row-lbl').popover('show'); 
 
      } 
 

 
      $('.edit-col-lbl, .edit-row-lbl').not(this).popover('hide'); 
 
     }); 
 

 
     $('body').off().on('click', '.rename-row', function() 
 
     { 
 
      var new_row_name = $('#new-row-name').val(); 
 

 
      console.log('Rename row clicked!'); 
 
      console.log('New row name: ' + new_row_name); 
 
        
 
     }); 
 
}); 
 
</script> 
 
</head> 
 
<body> 
 

 
<div id="rename-content" class="hide"> 
 
    <form class="popover-form"> 
 
     <div class="popover-form-content"> 
 
     <div class="material-input-group stretched"> 
 
      <input type="text" placehold="Title" id="new-row-name"> 
 
     </div> 
 
     </div> 
 

 
     <div class="popover-footer pull-right"> 
 
     <button type="button" class="btn btn-default flat close-popover">Cancel</button> 
 
     <button type="button" class="btn btn-default flat rename-row">Rename</button> 
 
     </div> 
 
    </form> 
 
    </div> 
 

 
</body> 
 
</html>

+1

什麼讓我感到困惑的是爲什麼它是空白的,即使當我輸入一個值 – herondale

+0

你輸入了什麼文字 – artemisian

+0

'測試','測試'只是簡單的字符串@artemi西安 – herondale