【发布时间】:2017-09-08 20:58:52
【问题描述】:
我有一个文本框,我想要一个调用 onkeyup 的函数,因此我有一个隐藏按钮,它试图重定向到另一个 c# 函数。问题是 jquery 进入函数内部,但没有进入服务器端事件。
这是我的两个元素的 HTML:
<div class="row" style="margin-top: 5px;">
<div class="col-sm-12">
<div class="input-group input-group-sm">
<span class="input-group-addon">Име:</span>
<asp:TextBox ID="tbCliName" ClientIDMode="Static" runat="server" onkeyup="runQuery(this)" CssClass="form-control"></asp:TextBox>
<asp:LinkButton ID="hiddenButton" class="btn btn-default" Style="opacity: 0;" ClientIDMode="Static" OnClick="hiddenButton_Click" runat="server"></asp:LinkButton>
<span class="input-group-addon">Егн/Булстат:</span>
<asp:TextBox ID="tbEgnBStat" ClientIDMode="Static" runat="server" CssClass="form-control"></asp:TextBox>
</div>
</div>
</div>
这是我的 jquery 函数:
function runQuery(e) {
$('#hiddenButton').click();
}
按钮点击的C#:
protected void hiddenButton_Click(object sender, EventArgs e)
{
AutoComplete_Press(tbCliName.Text);
}
使用 Ajax 编辑:
函数 runQuery(e) { var search = $(e).val();
function runQuery(e) {
var search = $(e).val();
var params = {
url: 'addEditProduct.ascx/AutoComplete_Press',
method: 'post',
contentType: 'aapplication/json',
data: '{searchClause:' + search + '}',
dataType: 'json',
success: function (data) {
alert(1);
},
error: function (data) {
alert(2);
}
};
$.ajax(params);
}
[WebMethod]
public static void AutoComplete_Press(string searchClause)
{
int searchType = 0; //ЕГН
int csKind = 0;
Regex regex = new Regex("^[0-9]+$");
if (!regex.IsMatch(searchClause))
searchType = 1;
//if (rbLP.Checked)
// csKind = 1;
string clients = laboratory.getClients2(searchType, searchClause, 1);
}
【问题讨论】:
-
“jQuery 进入函数内部”是什么意思?这在哪里/如何具体失败?被点击的元素的 HTML 是什么?
-
被点击的元素是hiddenButton。它进入 jquery 函数内部,就像我放置一个“调试器”一样;它停在那里。
-
好的,但是有问题的元素的实际 HTML 是什么? “在 jQuery 函数内部”是指您的
runQuery函数正在执行吗? jQuery 选择器在你调试的时候会发现什么吗? -
我用更多 HTML 更新了我的问题。选择器找到没有问题的按钮。
-
我刚刚做了调试器; var a = $('#hiddenButton'):在文本框中输入一个值,然后悬停该变量,它具有按钮的属性。