将值添加到现有值

时间:2011-02-15 22:33:14

标签: javascript

我想将一个数字添加到用户在文本框中定义的另一个数字。添加的数字由键入单独文本框的字符串或代码确定,由事件处理程序控制。

情景
用户在文本框1中输入值"70"。然后,用户将代码"Valley"键入文本框2,该文本框2应自动将"28"添加到文本框1中的"70"并显示文本框1中的新值"98"

这可能吗?如果是这样,接近它的最佳方式是什么。我对JavaScript有基本的了解。以下是我的开始,我知道非常可怜。非常感谢任何帮助,因为我很难过这里去哪里。

var TrackingCode = document.getElementById("textbox_2").value;
var textDay = "";
if (TrackingCode == "VALLEY") {

3 个答案:

答案 0 :(得分:2)

var TrackingCode = document.getElementById("textbox_2").value;
var box1 = document.getElementById("textbox_1");
if (TrackingCode == "VALLEY") {
    box1.value = Number(box1.value) + 28;
}

请注意Number强制转型是必需的,否则您将获得7028

答案 1 :(得分:1)

您可以将所有代码存储在对象中作为一种字典:

var codes = {
    "VALLEY": 28,
    "FIELD" : 42,
    "MOUNTAIN" : 7,
    "STREAM" : 99,
    "PLATEAU" : 18
};

然后获取值并将其添加如下:

var firstNumber = parseFloat(document.getElementById("textbox_1").value);
var trackingCode = document.getElementById("textbox_2").value;
if (isFinite(firstNumber) && trackingCode in codes)
{
    var codeValue = codes[trackingCode];
    var sum = firstNumber + codeValue;
}

当然,您也可以使用<select>列表框。

<select id="trackingCodeListBox">
    <option value="28">VALLEY</option>
    <option value="42">FIELD</option>
    <option value="7">MOUNTAIN</option>
    <option value="99">STREAM</option>
    <option value="18">PLATEAU</option>
</select>

然后您将获得所选项目的值:

var listBox = document.getElementById("trackingCodeListBox");
var selectedCode = listBox.options[listBox.selectedIndex].value;
var trackingCode = parseFloat(selectedCode);  // or parseInt() if appropriate;

答案 2 :(得分:0)

感谢您的帮助。

function execute()
{
    var TrackingCode = document.getElementById("tracking_code").value;
    var box1 = document.getElementById("packageCostA");
    var num = document.getElementById("adults_nr").value;
    if (TrackingCode == "VALLEY") {
        packageCostA.value = Number(packageCostA.value) + 28*adults_nr.value;
    }
}

这就是我最终的结果,它现在可以实现我想要的方式。