在输入字段中分配和显示新值

时间:2011-05-13 02:56:26

标签: jquery

由于某种原因,我的功能不起作用。也许我做了一些语法错误。 函数假设从两个不同的选择标记中获取值,并在输入标记中显示它们的总和。问题是没有标签有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>

2 个答案:

答案 0 :(得分:1)

您的JS遇到了一些问题:

  1. 您实际上没有定义一个函数 - 您可以在页面加载时立即执行一次脚本。

  2. 添加值时,应使用parseInt()将文本框中的字符串转换为可添加的整数:

    var QtyUpdated = parseInt(Quantity1, 10) + parseInt(Quantity2, 10);
    
  3. $('input[name=formQty]').html(QtyUpdated);似乎不对 - formQty,变量根据产品名称指定了值。这个jQuery选择器会查找名为<input>的{​​{1}}元素 - 这看起来不像你想要的那样。

  4. 您在所有formQty块中遗漏了分号(;) - 虽然是可选的,但我建议您不要依赖JavaScript引擎插入。它可能导致难以追查问题。

  5. 由于你已经包含了jQuery,你可以使用更多的东西,在文本框中获取和设置值时更容易自己


  6. <强>更新

    你没有展示你的HTML,所以这可能不是现有JS的替代品,但是这里有一些代码解决了一些问题:

    if-else

答案 1 :(得分:1)

除了已经陈述的问题之外,最终部分还存在一些语法问题:

$(document).ready(function(){
    $('input[name=selectRightName]').change( function() {

        MainForm.elements[formQty].value = QtyUpdated;
        $('input[name=formQty]').html(QtyUpdated);


  }); 

})
相关问题