C# 使用jquery在自动完成过程中不工作,将值设置为隐藏字段
有一个简单的表单,它向服务器发送C# 使用jquery在自动完成过程中不工作,将值设置为隐藏字段,c#,jquery,html,jquery-ui,asp.net-mvc-4,C#,Jquery,Html,Jquery Ui,Asp.net Mvc 4,有一个简单的表单,它向服务器发送get请求 <form id="form0" method="get"> <input id="searchTerm" type="hidden" name="searchTerm"> <input type="search" id="userSearchTerm" /> <input type="submit" value="submit" /> </form> 我收到类似“成功获取数据
get请求
<form id="form0" method="get">
<input id="searchTerm" type="hidden" name="searchTerm">
<input type="search" id="userSearchTerm" />
<input type="submit" value="submit" />
</form>
我收到类似“成功获取数据”以及“项目名称”的警报消息。还可以通过Google Chrome下的Network
选项卡检查json响应
问题是,我无法提交表格。如果删除该行,$('#searchTerm').val(ui.item.name)代码>表单正在提交,一切正常
有人能给我指出正确的方向吗?为什么这个简单的javascript没有运行?尝试将ui.item.name替换为ui.item.value类似
select: function (e, ui) {
alert(ui.item.value);
$('#searchTerm').val(ui.item.value);
$("#form0").submit();
}
试试这个:
$( "#tags" ).autocomplete({
source: availableTags,
select: function (e, ui) {
alert(ui.item.value);
$("#searchTerm").val(ui.item.value);
$("#form0").submit();
}
});
感谢@Unknown、@Rohan、@Mike、@Jatin为我指明了正确的方向,感谢他们付出的努力
因此,我从中学到了一些东西:是时候回答“为什么它不起作用了?”
答案是:
有一个类型为“hidden”
的输入字段,id=SearchTerm
,我试图在提交表单之前设置它的值
我用了一些类似
$("#searchTerm").value("TEST");
浏览器似乎不高兴地告诉我,对象[Object Object]没有方法“值”
因此,使用jquery
为表单中的隐藏字段设置值的正确方法是使用如下内容:
$('input[name=searchTerm]').val(ui.item.name);
第二部分:
我的JSON对象的类型为,名称和值对。所以,通常我应该使用
$('input[name=searchTerm]').val(ui.item.name); or $('input[name=searchTerm]').val(ui.item.value);
不仅仅是$('input[name=searchTerm]').val(ui.item)//这是不明智的。
附加说明:
您可以按F12打开开发人员工具(如果安装了firebug,则不会启动)
导航到控制台选项卡
,其中会显示各种脚本错误
导航到网络选项卡
,该选项卡提供所有JSON请求。您的sort2在哪里定义?还是从哪里来的?@Jatinpatil:谢谢你的指点。那是个打字错误。但是,还是一样的错误。看起来一切都很好。您可以使用示例json创建吗?您必须传递这样的标记source:availableTags
notsource:{availableTags}
。工作很好。你有打字错误。它不是$(“searchTerm”).value(“test”)
。使用$(“searchTerm”).val(“测试”)
。
$('input[name=searchTerm]').val(ui.item.name); or $('input[name=searchTerm]').val(ui.item.value);