我正在设置来自javascript的asp.net文本框的值,然后尝试从后面的代码中访问相同的内容,但它会变空。我完全不知道为什么会这样发生。
正如在某处所建议的那样,我尝试将ASP.NET文本框控件更改为使用runat服务器输入HTML控件,这些工具就像魅力一样。但是我很想知道为什么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>
的Javascript
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控件。请参阅onclick处理程序。
所以,现在当我通过按钮回发去服务器时,我在txtQty中看不到任何值。
请帮忙。
由于
答案 0 :(得分:0)
根据我的发现,问题出现了,因为我正在使用扩展此文本框的AJAX水印控件。当我删除它时,它工作。
所以,我的解决方案是使用runat服务器的输入。对于水印使用placeHolder属性。