$this.val()未获取jQuery生成的表单值

$this.val()未获取jQuery生成的表单值,jquery,ajax,Jquery,Ajax,第一个脚本在单击时将文本转换为可编辑的文本字段。编辑文本后,按下提交按钮,激活第二个脚本。第二个脚本应该通过AJAX将一些信息发送到另一个页面,最终提交到数据库中。前两个变量(projectID和contactType)通过AJAX发送,但UpdateInfo(应该包含编辑文本的变量)始终为空。我想我错过了一些愚蠢的东西,但我想不出来。下面是两个脚本 <script type="text/javascript"> $(document).ready(function() {

第一个脚本在单击时将文本转换为可编辑的文本字段。编辑文本后,按下提交按钮,激活第二个脚本。第二个脚本应该通过AJAX将一些信息发送到另一个页面,最终提交到数据库中。前两个变量(projectID和contactType)通过AJAX发送,但UpdateInfo(应该包含编辑文本的变量)始终为空。我想我错过了一些愚蠢的东西,但我想不出来。下面是两个脚本

<script type="text/javascript">
    $(document).ready(function() {
        var alreadyActive = "";
        $(".editable").on("click", function () {
            if(!alreadyActive) {
                OriginalText = $(this).text();
                divValue = $(this).attr('value');
                $(this).html("<form class='edit-form' name='" + divValue + "'><input type='text' value='" + OriginalText + "' /><input type='submit' value='Update' /></form>");
                alreadyActive = "true";
            }
        });
    });
</script>
<script type="text/javascript">
    $('body').delegate('.edit-form','submit',function(e){
        e.preventDefault();
        var projectID = <?php echo $projectID ?>;
        var contactType = $(this).attr('name');
        var updatedInfo = $(this).val();

        $.ajax({
            url: 'editinplace.php?projectID=' + projectID + '&contactType=' + contactType + '&updatedInfo=' + updatedInfo,
        });
    });
</script>

$(文档).ready(函数(){
var alreadyActive=“”;
$(“.editable”)。在(“单击”,函数(){
如果(!ALREADYAACTIVE){
OriginalText=$(this.text();
divValue=$(this.attr('value');
$(this.html(“”);
alreadyActive=“true”;
}
});
});
$('body').delegate('edit form','submit',函数(e){
e、 预防默认值();
var projectd=;
var contactType=$(this.attr('name');
var updateInfo=$(this.val();
$.ajax({
url:'editinplace.php?projectID='+projectID+'&contactType='+contactType+'&UpdateInfo='+UpdateInfo,
});
});

如果试图获取表单中文本字段的值,则需要更改:

var updatedInfo = $(this).val();
致:


代码所做的是在
标记本身上查找
属性。相反,由于您要查找的
位于
标记中,因此必须让jQuery查看该特定标记。

如果您试图获取表单中文本字段的值,则需要更改:

var updatedInfo = $(this).val();
致:


代码所做的是在
标记本身上查找
属性。相反,由于您要查找的
位于
标记中,因此您必须让jQuery查看该特定标记。

实际上,您似乎正在获取表单的“值”

var updatedInfo = $(this).val();

“this”(如果我正确阅读代码)将是表单,而不是输入。正如其他回答获取按钮文本的人所提到的,请尝试$(this).text()

它实际上看起来像是在获取表单的“值”

var updatedInfo = $(this).val();
“this”(如果我正确阅读代码)将是表单,而不是输入。正如其他回答获取按钮文本的人所提到的,请尝试$(this).text()

在发布之前,我已经尝试了$(this).text()。Coby的回答非常有效,谢谢你的回答。我在发布之前已经尝试了$(this).text()。科比的回答很好,谢谢你的回答。