簡體   English   中英

Javascript無法從隱藏的TextBox中讀取值-JQuery 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM