Javascript 在JQuery自动完成后获取ID的值
我有两个文本框用于使用自动完成的字段。在由所选的自动完成值或手动值填充后,其他javascript函数在引用ID.val()时为空。需要添加/更改哪些内容才能获得这些值?提前谢谢 编辑: 在发送到视图之前预先填充控制器中的字段允许函数调用检索正确的预先填充值。似乎只有当用户尝试编辑字段和/或使用自动完成时,才无法识别字段值Javascript 在JQuery自动完成后获取ID的值,javascript,jquery,asp.net,asp.net-mvc,razor,Javascript,Jquery,Asp.net,Asp.net Mvc,Razor,我有两个文本框用于使用自动完成的字段。在由所选的自动完成值或手动值填充后,其他javascript函数在引用ID.val()时为空。需要添加/更改哪些内容才能获得这些值?提前谢谢 编辑: 在发送到视图之前预先填充控制器中的字段允许函数调用检索正确的预先填充值。似乎只有当用户尝试编辑字段和/或使用自动完成时,才无法识别字段值 (function(){ $('#AddedWorkmate').on("input", ExampleFunction); } )(); functio
(function(){
$('#AddedWorkmate').on("input", ExampleFunction);
}
)();
function ExampleFunction() {
var text = $(this).val();
}
EDIT2:我已尝试将函数绑定到document.ready,然后是on click和document.on click,但都没有在文本框ID中找到值
剃刀:
<div class="row">
<div class="col-lg-12">
@Html.LabelFor(m => m.AddedWorkmate, "Workmate To Add", new { @class = "control-label" })
@Html.TextBoxFor(m => m.AddedWorkmate, new { data_autocomplete_url = Url.Action("GetWorkmates"), @class = "form-control" })
</div>
</div>
<div class="row">
<div class="col-lg-4">
<button type="button" id="bUser" name="bUserButton" class="btn btn-primary btn-sm">Add Workmate Recipient</button>
</div>
</div>
将您想要的id添加到文本框中,以便可以从jQuery引用它
@Html.TextBoxFor(m => m.AddedWorkmate, new { data_autocomplete_url = Url.Action("GetWorkmates"), @class = "form-control", id="AddedWorkmate" })
我认为如果你输入自动完成,并且你仍然有焦点,那么输入将不会检测到变化。您是否尝试退出文本框并在软件后调用
ExampleFunction
您还可以在此文本框的input
事件上绑定ExampleFunction
。input
在用户键入或粘贴时被触发,因此它也应该与自动完成一起工作
(function(){
$('#AddedWorkmate').on("input", ExampleFunction);
}
)();
function ExampleFunction() {
var text = $(this).val();
}
编辑:
请尝试以下步骤:
m=>m.AddedWorkmate
文本框中键入或粘贴一些文本,例如test
$(“#AddedWorkmate).val()
“test”
的响应input
上绑定一个事件,如下所示$(this).val()
的内部,我看不出任何其他可能性。如果它未定义且值仍然为空,则您在问题范围之外做了错误的事情所有这一切背后都有一个草率的错误:该字段在网页的前面被声明为@HiddenFor。在看到源代码中的输入“隐藏”后,该行被删除,一切正常。感谢您的建议,但这似乎不起作用。添加的id与示例一样,而.val()仍然显示为“谢谢你的回答!在按下启动函数的按钮之前,我尝试在文本框外单击,但值仍然为“”。我将尝试将函数绑定到文本框的输入。我尝试将示例代码放入,但输入代码没有被触发。ExampleFunction仅在按下按钮时启动。是否确定此TextBoxFor的id将呈现给AddedWorkmate?请验证是否可以将$('#AddedWorkmate').val()与手动键入的文本一起使用。我没有完整的上下文,因此可能遗漏了某些内容。它似乎是实际的ID。查看源代码时,它的ID=“AddedWorkmate”。我认为这与您最初提出的关于自动完成的重点的建议是一致的,但我不确定。我当时不知道。我想你在这个范围之外的某个地方有一个bug,我说不出来。此时,您应该能够调用$('#AddedWorkmate').val(),并在单击按钮之前获取键入的内容。尝试验证您没有具有相同id的任何其他元素,并且输入事件绑定被正确调用。
(function(){
$('#AddedWorkmate').on("input", function(){console.log('test')});
}
)();