![](/img/trans.png)
[英]create hidden textbox, change it value in javascript and get new value. c#
[英]Javascript not reading value from hidden textBox - JQuery C#
我不是使用JavaScript / JQuery的非专家,但是在弄清楚为什么我的脚本不起作用时遇到了麻烦。 当我的C#页面加载时,我有一个隐藏的textBox txtHiddenKeywordArray,它会动态填充逗号分隔的值,例如...马,越野车,跟踪
我正在尝试在jquery.highlight-3.js中使用突出显示功能,其中我有一个标签文本字段,该文本字段将包含并突出显示关键字列表中的单词。 我正在使用脚本
<script language="javascript" type="text/javascript">
var myString = document.getElementById('<%=txtHiddenKeywordArray.ClientID%>').val()
myArray = myString.split(" ");
$(document).ready(function () {
for (i = 0; i < myArray.length; i++)
$("p").highlight(myArray[i])
});
</script>
这是textBox声明:
<asp:TextBox ID="txtHiddenKeywordArray" ClientIDMode="Static" runat="server" Visible="false"></asp:TextBox>
当我对var myString的值进行硬编码时,它的效果很好。 我尝试研究它,并不断看到相同的示例。 该页面确实使用了MasterPage。 这会影响吗?
知道如何让脚本从文本框中查看值吗? 我需要RegisterStartUpScript之类的东西吗? 感谢您的任何帮助,您可以提供。
组
style="display:none;"
代替使用
Visible="false"
为您的TextBox。
如果将TextBox设置为visible = false。 然后,文本框将不会在html中呈现。 因此,将无法访问。
例如。:
<asp:TextBox ID="txtHiddenKeywordArray" ClientIDMode="Static" runat="server" style="display:none;"></asp:TextBox>
JS代码:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
var myString = $('#<%=txtHiddenKeywordArray.ClientID%>').val();
myArray = myString.split(" ");
for (i = 0; i < myArray.length; i++)
$("p").highlight(myArray[i])
});
</script>
var myString = document.getElementById('<%=txtHiddenKeywordArray.ClientID%>').val()
应该
var myString = $('#<%=txtHiddenKeywordArray.ClientID%>').val();
因为.val()
可用于jQuery对象。
您也可以尝试
var myString = document.getElementById('<%=txtHiddenKeywordArray.ClientID%>').value;
尝试使用
var myString = $('#<%=txtHiddenKeywordArray.ClientID%>').val();
@Kapil和@thecodeparadox的建议是必要的。 您还需要在$ document.ready(...)内移动javascript的前两行:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
var myString = $('#<%=txtHiddenKeywordArray.ClientID%>').val();
myArray = myString.split(" ");
for (i = 0; i < myArray.length; i++)
$("p").highlight(myArray[i])
});
</script>
您无需将原始的asp.net控制标记传递给选择器。 只需id
名称即可。 这应该工作。
普通的旧JavaScript应该是
var myString = document.getElementById('txtHiddenKeywordArray').value;
jQuery应该是
var myString = $('#txtHiddenKeywordArray').val();
您是否尝试过将文本框更改为隐藏字段(这就是您要执行的操作)。
<asp:HiddenField runat="server" ID="txtHiddenKeywordArray" Value="horse, track" />
和js:
$(document).ready(function () {
alert($("input[id$='txtHiddenKeywordArray']").val());
});
效果很好:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.