Javascript 在jQuery中没有获取输入值?

Javascript 在jQuery中没有获取输入值?,javascript,php,jquery,Javascript,Php,Jquery,header.php <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"

header.php

 <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>

在控制台中,将显示消息,但行名称为空。我没有收到任何错误,只是没有收到输入。当我尝试打印值length时,它显示为1

这是因为在单击$('body')函数中有未知的变量“row\u id\u to\u rename”

您必须在这些函数之外的顶部声明该变量:

$(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() {
        ...
    });
});
$(文档).ready(函数(){

var row_id_to_rename;//正在拾取的输入只是值是空字符串

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

如果在控制台中找不到它,您将看到“新行名称:未定义”


$(文档).ready(函数(){
$('.编辑列lbl,.编辑行lbl')。单击(函数()
{
if($(this).hasClass('edit-col-lbl'))
{
to_rename='col';
col_id_to_rename=$(this).data('col-id');
$('.edit col lbl').popover('show');
}
其他的
{
to_rename='行';
row_id_to_rename=$(this).data('row-id');
$('.edit row lbl').popover('show');
}
$('.edit col lbl,.edit row lbl')。而不是(this.popover('hide');
});
$('body').off().on('单击','重命名行',函数())
{
var new_row_name=$('#new row name').val();
log('Rename row clicked!');
log('新行名称:'+新行名称);
});
});
取消
改名
我不得不这么做:

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

将其绑定到类。现在它将拾取值。感谢您的帮助!

如果对空jQuery对象调用
.val()
,它将返回
未定义的
,而不是“空白”,因此,如果您变为空白,这意味着jQuery确实找到了有问题的输入。您希望输入有什么值?我输入'test'作为一个值,因此在控制台中它应该显示'New row name:test'。实际上还没有设置验证。只需确保它进入数据库@nnnnnn这是一个愚蠢的问题,但是…是不是e> header.php
footer.php
都包含在同一个页面上?可能您没有得到占位符是因为
placehold=
而不是
placeholder=
?这可能会“破坏”
?请尝试将其修复为
占位符
,并查看是否得到有效输入。是的,谢谢您的提示我确实更正了,但是这个值仍然是空白的。我在codeigniter中这样做,页眉和页脚被加载为视图,但是我想安全地说它们和模板组成的页面是相同的,包括内容。@obsidemanage问题是使用
new\u row\u name
,而不是
row_id_to_rename
;)我截断了我的代码。我确实在上面声明了这种方式,因为我首先尝试使用外部js文件,比如:
var row_id_to_rename=0;啊,对不起,你还没有解释过,哈哈。如果我知道答案,我会尝试找到问题并做出另一个答案;)@herondale尝试输入
$(“#新行名称”).length
在您的控制台中。结果是1吗?@TaufikNurRahmanda是的,我键入了“test”,在
之后得到了1作为结果。length
让我困惑的是,为什么即使我键入一个值,它仍然是空的。您输入的文本是什么?“test”,“testing”。只是简单的字符串。@artemiani添加了一个代码段,它工作正常。请检查它是否是空的你说得对。我没什么意义为什么值是空的,看不到我遗漏了什么。这可能是因为我加载的脚本之一,以供定制?
new_row_name = $('.popover #new-row-name').val();