ASP.NET 从 JQuery 设置时,服务器端的文本框值为空
ASP.NET Textbox value coming empty on server side when set from JQuery
我正在从javascript设置文本框的值 asp.net 然后尝试从代码隐藏中访问相同的值,但它是空的。我完全不知道为什么会这样。
正如某处建议的那样,我尝试将文本框控件更改为使用 runat 服务器输入 HTML 控件 ASP.NET,事情就像一个魅力。但我迫切想知道为什么 asp.net 文本框会这样。
以下是代码块:
标记:
<div class="ingredient-block">
<span>
<asp:Localize ID="lblIngrQty" runat="server" Text="<%$ Resources:Resources, lblIngrQty %>"></asp:Localize></span><br>
<asp:TextBox ID="txtQty" CssClass="txtBack" Width="50px" runat="server" TabIndex="10" onchange="fnVerifyQuantityValue(this);" onfocus="fnShowQtyOnFocus(this);" onblur="fnHideKeywordWindow(this);"></asp:TextBox>
<actAjax:TextBoxWatermarkExtender ID="TeterxtBox5_TextBoxWamarkExtender" runat="server"
WatermarkText="<%$ Resources:Resources, lblIngrQty %>" Enabled="True" WatermarkCssClass="watermark1" TargetControlID="txtQty">
</actAjax:TextBoxWatermarkExtender>
</div>
爪哇语
function fnShowQtyOnFocus(oQty) {
var hiddenQtyKw = fnUnEscapeXMLValue($("#<%=hdnQtyCommonKw.ClientID%>").val());
if (hiddenQtyKw.length > 1) {
var xmlCommonQty = $.parseXML(hiddenQtyKw);
$XMLCommonQTY = $(xmlCommonQty);
var keywordCollection = $XMLCommonQTY.find('Name');
var ul = document.createElement("ul");
for (index = 0; index < keywordCollection.length; index++) {
var li = document.createElement("li");
li.innerHTML = keywordCollection[index].textContent;
li.onclick = function () {
if ($("#" + oQty.id).val() == "Qty" || $("#" + oQty.id).val() == "Mängd") {
$("#" + oQty.id).val("");
$("#" + oQty.id).val(this.innerHTML);
}
else {
$("#" + oQty.id).val($("#" + oQty.id).val() + this.innerHTML);
}
};
$(ul).append(li);
}
$(".showKeyword").html("");
$(".showKeyword").show();
$(".showKeyword").append(ul);
var offset = $("#" + oQty.id).offset();
var posY = offset.top - $(window).scrollTop();
var posX = offset.left - $(window).scrollLeft();
$(".showKeyword").css("top", posY - 20);
$(".showKeyword").css("left", posX);
}
}
不要怀疑JS函数。它正在创建一个假设有 5 个 li 元素的无序列表,将该 ul 元素添加到div 中,并在 txtQty 控件上方显示div。然后用户将单击 5 个元素中的任何一个,然后将 li 值复制到 txtQty 控件。请参阅点击处理程序。
所以,现在当我通过按钮回发转到服务器时,我在 txtQty 中看不到任何值。
请帮忙。
谢谢
根据我的发现,问题来了,因为我正在使用扩展此文本框的 AJAX 水印控件。当我删除它时,它起作用了。
因此,我的解决方案是将输入与runat服务器一起使用。对于水印,请使用占位符属性。
相关文章:
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 如何在服务器端的文本中添加按钮单击事件
- 将jQuery参数发送到服务器端并创建输出文本文件
- ASP.NET 从 JQuery 设置时,服务器端的文本框值为空
- 如何在 asp.net 中更新服务器端执行的 UI 按钮文本
- 服务器端表单验证 AJAX,通过比较不同页面上的两个文本框
- 如何在没有 ajax 调用或服务器端语言的情况下包含 HTML/文本文件
- 键入预置和服务器端文本更改事件未正确同步
- 访问ajax jQuery中的服务器端文本
- 在ASP.NET中卸载页面之前清除服务器端文本控件
- 正在修改服务器端文本文件
- 限制服务器端(php)和html中的文本区域行
- 字符串替换混合文本和HTML(客户端或服务器端)
- 调用文本框的客户端事件和服务器端事件
- 按客户端 ID 服务器端 asp.net 获取禁用的文本框值
- 服务器端预处理器为脆漂亮的字体/文本,如在photoshop
- 如何使用javascript在服务器端文件中搜索特定文本
- 需要服务器端验证搜索文本框
- 如何使用Express 4.0从客户端传递回一些文本到服务器端
- 在服务器端验证后保持显示隐藏文本框