由于某种原因,我的功能不起作用。也许我做了一些语法错误。 函数假设从两个不同的选择标记中获取值,并在输入标记中显示它们的总和。问题是没有标签有id,只有名字。名称也会根据页面动态更改。测试显示正确抓取值。如果您发现函数的编写方式有任何问题,请建议。
<script type="text/javascript">
var productName = document.MainForm.elements["ProductCode"].value;
var selectRightName = "SELECT___" + productName + "___23";
var selectLeftName = "SELECT___" + productName + "___24";
var formQty = "QTY." + productName;
var Quantity1 = document.MainForm.elements[selectRightName].value;
var Quantity2 = document.MainForm.elements[selectLeftName].value;
if (Quantity1 == 75)
Quantity1 = 1
else if (Quantity1 == 196)
Quantity1 = 2
else if (Quantity1 == 197)
Quantity1 = 3
else if (Quantity1 == 198)
Quantity1 = 4
else if (Quantity1 == 199)
Quantity1 = 5
if (Quantity2 == 76)
Quantity2 = 1
else if (Quantity2 == 200)
Quantity2 = 2
else if (Quantity2 == 201)
Quantity2 = 3
else if (Quantity2 == 202)
Quantity2 = 4
else if (Quantity2 == 203)
Quantity2 = 5
var QtyUpdated = Quantity1 + Quantity2;
var Qty = document.MainForm.elements[formQty].value;
$(document).ready(function()
$('input[name=selectRightName]').change( function() {
MainForm.elements[formQty].value = QtyUpdated;
$('input[name=formQty]').html(QtyUpdated);
}
});
})
</script>
答案 0 :(得分:1)
您的JS遇到了一些问题:
您实际上没有定义一个函数 - 您可以在页面加载时立即执行一次脚本。
添加值时,应使用parseInt()
将文本框中的字符串转换为可添加的整数:
var QtyUpdated = parseInt(Quantity1, 10) + parseInt(Quantity2, 10);
$('input[name=formQty]').html(QtyUpdated);
似乎不对 - formQty
,变量根据产品名称指定了值。这个jQuery选择器会查找名为<input>
的{{1}}元素 - 这看起来不像你想要的那样。
您在所有formQty
块中遗漏了分号(;
) - 虽然是可选的,但我建议您不要依赖JavaScript引擎插入。它可能导致难以追查问题。
由于你已经包含了jQuery,你可以使用更多的东西,在文本框中获取和设置值时更容易自己
<强>更新强>
你没有展示你的HTML,所以这可能不是现有JS的替代品,但是这里有一些代码解决了一些问题:
if-else
答案 1 :(得分:1)
除了已经陈述的问题之外,最终部分还存在一些语法问题:
$(document).ready(function(){
$('input[name=selectRightName]').change( function() {
MainForm.elements[formQty].value = QtyUpdated;
$('input[name=formQty]').html(QtyUpdated);
});
})