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
not
source:{availableTags}
。工作很好。你有打字错误。它不是
$(“searchTerm”).value(“test”)
。使用
$(“searchTerm”).val(“测试”)
$('input[name=searchTerm]').val(ui.item.name); or $('input[name=searchTerm]').val(ui.item.value);