【发布时间】:2016-12-21 09:19:41
【问题描述】:
我需要你的帮助。我正在尝试实现实时搜索。因此,每当我从一个 TextBox 切换到另一个 TextBox 时,都应该提交一个表单,以更新 URL 并将数据传递给控制器。当我单击提交按钮时它工作得很好,但它不能按我想要的方式工作。
这是我的代码:
控制器:
public ActionResult Index(string number, string caption)
{
//Fetch data from the database
return View();
}
查看:
$(document).ready(function () {
$('#number').change(function () {
$('#filter').submit();
});
});
@using (Html.BeginForm("Index", "Home", FormMethod.Get, new { id = "filter" }))
{
<div class="row">
<div class="col-sm-2 checkbox">
Number:
</div>
<div class="col-sm-3">
@Html.TextBox("Number", "", new { @class = "form-control", type = "text", id = "number" })
</div>
</div>
<div class="row">
<div class="col-sm-2 checkbox">
Caption:
</div>
<div class="col-sm-3">
@Html.TextBox("Caption", "", new { @class = "form-control", type = "text", id = "caption" })
</div>
</div>
<div class="row">
<div class="col-sm-2 col-sm-offset-2">
<button type="submit" id="submit" class=" btn btn-block btn-primary">Search</button>
</div>
</div>
}
输出 HTML:
<script>
$(document).ready(function () {
$('#number').change(function () {
$('#filter').submit();
});
});
</script>
<form action="/" id="filter" method="get"> <div class="row">
<div class="col-sm-2 checkbox">
Number:
</div>
<div class="col-sm-3">
<input class="form-control" id="number" name="Number" type="text" value="">
</div>
</div>
<div class="row">
<div class="col-sm-2 checkbox">
Caption:
</div>
<div class="col-sm-3">
<input class="form-control" id="caption" name="Caption" type="text" value="">
</div>
</div>
<div class="row">
<div class="col-sm-2 col-sm-offset-2">
<button type="submit" id="submit" class=" btn btn-block btn-primary">Search</button>
</div>
</div>
浏览器控制台:
Uncaught TypeError: elem[type] is not a function
at Object.trigger (http://localhost:49782/Scripts/jquery-1.8.2.js:2991:18)
at HTMLFormElement.<anonymous> (http://localhost:49782/Scripts/jquery-1.8.2.js:3618:17)
at Function.each (http://localhost:49782/Scripts/jquery-1.8.2.js:625:20)
at init.each (http://localhost:49782/Scripts/jquery-1.8.2.js:255:17)
at init.trigger (http://localhost:49782/Scripts/jquery-1.8.2.js:3617:15)
at init.jQuery.fn.(anonymous function) [as submit] (http://localhost:49782/Scripts/jquery-1.8.2.js:3671:9)
at HTMLInputElement.<anonymous> (http://localhost:49782/:63:26)
at HTMLInputElement.dispatch (http://localhost:49782/Scripts/jquery-1.8.2.js:3077:9)
at HTMLInputElement.eventHandle (http://localhost:49782/Scripts/jquery-1.8.2.js:2695:28)
【问题讨论】:
-
你确定编译后的表单上的文本框有id号吗?请验证此
-
@Satpal $(document).ready(function(){});没有解决问题,也没有解决页面底部的脚本。 onChange 事件触发,如果我将 confirm("Test") 放入脚本中,则只有表单不提交。
-
@Nils 我可以在生成的 HTML 中找到 TextBox ID
-
我不知道为什么你的表单没有提交..代码看起来很好..正如你所说的点击按钮会提交..你为什么不首先检查按钮是否以编程方式被点击表单提交..
$('#submit').trigger('click') -
@RajshekarReddy 不幸的是它也不起作用......
标签: javascript c# jquery asp.net .net