簡體   English   中英

在JavaScript中獲取文本框的值

[英]Getting the values of textboxes in Javascript

我有這個html代碼:

<table border="" cellpadding="3" cellspacing="0" id="mytable">

<tbody><tr><td>Song:</td> <td><input type="text" name="song" maxlength="64" size="48" /> </td></tr>
<tr><td>Artist:</td> <td><input type="text" name="artist" maxlength="16" size="48" /> </td></tr>

如何獲得“歌曲”和“藝術家”的價值觀? 我努力了:

var elTableCells = mytable.getElementsByTagName("td");
alert(elTableCells[2].value);
alert(elTableCells[4].value);

但即使文本框內有文本,我仍會得到“未定義”

首先, td元素沒有value屬性,因此在它們上調用.value不會.value 其次,該值實際上在input元素上,因此您需要執行mytable.getElementsByTagName('input') 更好的辦法是為您的輸入字段提供ID,然后使用getElementById 這意味着您可以在不破壞JS的情況下更改HTML。

下載jQuery

jQuery("input[name='song']").val()

嘗試解決以下參數。 上面的普通javascript可能會導致這種情況,但是為了簡單起見和跨瀏覽器標准化,我建議使用jQuery。 它是一個被廣泛使用且通常被高度推薦的庫。

var song   = document.getElementsByName("song").value;
var artist = document.getElementsByName("artist").value;

此處相關的tagName是“輸入”,而不是td。 這將為您提供所需的東西。

在StackOverflow上這幾乎是陳詞濫調,但是我建議您看一下JQuery。 JQuery允許您將HTML視為數據庫,並對其進行查詢以獲取此類信息。 如果您的標記是這樣的:

<input type="text" id="song" maxlength="64" size="48" />

您可以這樣獲得值:

$("#id").value();

如果要獲取其上的maxlength屬性值,可以執行以下操作:

$("#id").attr("maxlength");

比挖掘元素數組要有趣得多。

alert(document.getElementsByName("song")[0].value);
alert(document.getElementsByName("artist")[0].value);

我發現這是有效的,下面是從asp.net文本框中獲取日期,然后獲取今天的日期。 然后,我通過一個函數發送兩個日期,以獲取進行計算所需的月份數(請注意,代碼使用Infragistics庫(如果要復制和粘貼,請用標准JavaScript調用替換這些調用):

function calculateMonthlyRepayment() 

    var tStartDate = $find('dp_Start_Date');
    var startDate = tStartDate.get_value();
    var today = new Date();
    var numMonths = monthDiff(startDate, today);     
    var rate = igedit_getById('WebNumericEdit_InterestRate').getValue() * 0.01;
    var intRate = (rate / 100) / 12;
    var principal = igedit_getById('WebCurrencyEdit_Proposed_Owing').getValue();
    var repayment = (principal * (Math.pow((1 + intRate), numMonths)) * intRate / (Math.pow((1 + intRate), numMonths) - 1));

    igedit_getById('txt_Monthly_Repayment').setValue(repayment);

}
function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth() + 1;
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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