我想将一个数字添加到用户在文本框中定义的另一个数字。添加的数字由键入单独文本框的字符串或代码确定,由事件处理程序控制。
情景
用户在文本框1中输入值"70"
。然后,用户将代码"Valley"
键入文本框2,该文本框2应自动将"28"
添加到文本框1中的"70"
并显示文本框1中的新值"98"
。
这可能吗?如果是这样,接近它的最佳方式是什么。我对JavaScript有基本的了解。以下是我的开始,我知道非常可怜。非常感谢任何帮助,因为我很难过这里去哪里。
var TrackingCode = document.getElementById("textbox_2").value;
var textDay = "";
if (TrackingCode == "VALLEY") {
答案 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;
}
}
这就是我最终的结果,它现在可以实现我想要的方式。