获取Javascript中文本框的值

获取Javascript中文本框的值,javascript,html,html-table,textbox,Javascript,Html,Html Table,Textbox,我有以下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>

我有以下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>
但是,即使文本框中有文本,我也会一直没有定义

尝试并解决下面的论点。如上所述,使用纯javascript可以降低这一点,但为了简单和跨浏览器标准化,我建议使用jQuery。这是一个被广泛使用且普遍强烈推荐的库。

下载


尝试并解决下面的论点。如上所述,使用纯javascript可以降低这一点,但为了简单和跨浏览器标准化,我建议使用jQuery。它是一个被广泛使用且通常被高度推荐的库。

首先,td元素没有value属性,因此对它们调用.value不会起任何作用。其次,该值实际上位于输入元素上,因此需要改为使用mytable.getElementsByTagName'input'。更好的做法是为输入字段指定ID,然后使用getElementById。这意味着您可以在不破坏JS的情况下修改HTML。

首先,td元素没有value属性,因此对它们调用.value不会起任何作用。其次,该值实际上位于输入元素上,因此需要改为使用mytable.getElementsByTagName'input'。更好的做法是为输入字段指定ID,然后使用getElementById。这意味着您可以在不破坏JS的情况下更改HTML。

此处相关的标记名是输入,而不是td。这会让你得到你想要的

var song   = document.getElementsByName("song").value;
var artist = document.getElementsByName("artist").value;
这几乎是StackOverflow的陈词滥调,但我建议您看看JQuery。JQuery允许您将html作为数据库处理,并对其进行查询以获取此类内容。如果您的标记是这样的:

<input type="text" id="song" maxlength="64" size="48" />
$("#id").value();
如果要获取其maxlength属性的值,可以执行以下操作:

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

比挖掘元素数组有趣得多。

此处相关的标记名是输入,而不是td。这会让你得到你想要的

alert(document.getElementsByName("song")[0].value);
alert(document.getElementsByName("artist")[0].value);
这几乎是StackOverflow的陈词滥调,但我建议您看看JQuery。JQuery允许您将html作为数据库处理,并对其进行查询以获取此类内容。如果您的标记是这样的:

<input type="text" id="song" maxlength="64" size="48" />
$("#id").value();
如果要获取其maxlength属性的值,可以执行以下操作:

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

比挖掘元素数组有趣得多。

我发现这很有效,下面我从asp.net文本框中获取日期,然后获取今天的日期。然后,我通过一个函数发送这两个日期,以获得进行计算所需的月数。请注意,代码使用Infragistics库。如果您打算复制和粘贴,请使用标准JavaScript调用替换这些调用:

alert(document.getElementsByName("song")[0].value);
alert(document.getElementsByName("artist")[0].value);
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;
}

我发现这很有效,下面我从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;
}

jQuery并不是每个Javascript问题的答案。。。特别是当OP已经在使用纯JavaScript时,“答案”。不,但是当谈到domjQuery时,它是“一个答案”,甚至是“一个正确的答案”。有不止一个正确答案。jQuery并不是每个Javascript问题的答案。更简单的选项$input[name='song']。val。。。特别是当OP已经在使用纯JavaScript时,“答案”。不,但是当谈到domjQuery时,它是“一个答案”,甚至是“一个正确的答案”。有多个正确答案。getElementsByName返回域节点列表。您需要使用document.getElementsByNamesong[0].value。请注意,此方法在和中的行为非常不同。在IE中,还将返回具有匹配ID的元素,但没有具有名称属性但正式不支持该属性的元素。而在FF中,无论是否正式支持,都只返回具有匹配名称s的元素。另请参见:getElementsByName返回域节点列表。您需要使用document.getElementsByNamesong[0].value。请注意,此方法在和中的行为非常不同。在IE中,还将返回具有匹配ID的元素,但没有具有名称属性但正式不支持该属性的元素。而在FF中,无论是否正式支持,都只返回具有匹配名称s的元素。另见: