无法设置undefined属性(输入[text]值)

时间:2017-02-12 21:13:06

标签: javascript jquery css input

我无法从input[type='text'] #page-name#page-url获取value属性,它显示为undefined:



 eventsDispatcher: function() {

   var self = this;

   $(".b-row a").click(function() {

     var tileId = ("this").id;
     $("#tile-edit").css("display", "block");

     $("#tile-edit-save").click(function() {

       self.pageList[tileId].name = $("#page-name").val(); // -> here
       self.pageList[tileId].url = $("#page-url").val(); // -> here
       console.log(self.pageList[tileId].name);
     });
   });
 },

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="tile-edit">

  <form>
    <table>

      <tr>
        <td>
          <label for="page-url">Adress</label>
        </td>
        <td>
          <input type="text" name="page-url" id="page-url" class="">
        </td>
      </tr>

      <tr>
        <td>
          <label for="page-name">Name</label>
        </td>
        <td>
          <input type="text" name="page-name" id="page-name" class="">
        </td>
      </tr>

      <tr>
        <td>
          <input type="button" id="tile-edit-save" value="save">
        </td>
      </tr>

    </table>
  </form>

</div>
&#13;
&#13;
&#13;

脚本的其余部分工作正常,就像两个.click函数一样,只是无法弄清楚为什么它没有得到#page-name#page-url值?

2 个答案:

答案 0 :(得分:2)

我只是猜测,但("this").id应为undefined。您可能希望将其更改为:

var tileId = $(this).attr('id');

答案 1 :(得分:0)

我相信你的HTML中有特殊字符。我将它复制并粘贴到纯文本编辑器中,并且工作正常。请尝试在此处复制并粘贴DEFAULT '1970-01-01 00:00:00' HTML。

form
$('#tile-edit-save').on('click',function() {
console.log($("#page-name").val())
console.log($("#page-url").val())
});