使用jquery重新计算表单的输出

时间:2014-04-23 13:00:06

标签: javascript jquery

我构建了一个表单,该表单用于通过PHP从另一个网页传递给它的值。 例如:

$spa = $_POST['SpM'];

然后将这些值转换为java变量。 例如:

var spa = Number("<?php echo $spa; ?>");

然后使用这些变量在表单中添加和填充新的文本框。

function addText(count){
    $('<input type="text">').attr({'id':'d'+count, 'name':'d'+count}).val(toInch(spa+count)).prop('readonly', true).addClass("tagN").appendTo(divText);
}

请注意,上述文本框可以是任意数字,具体取决于上述函数中COUNT变量的含义。例如,可能会生成10个字段,或者极端情况下大约1,000个字段。这可以通过使用FOR来完成,如下所示:

for(count=1; count<max; count++){
    addText(count);
    if(count==(max-1)){break;}
}

为了更加清晰,我没有显示上面所做的其他代码。

我的问题是:所有这些字段都显示英寸,为了管理它们,用户需要将它们向下舍入到可理解的部分,例如。 .125为1/8&#39;&#39;。这就是&#34; toInch&#34;函数在上面&#34; addText&#34;函数,通过使用变量&#34; roundDown&#34;。 现在,用户可以选择将roundDown变量更改为1/16&#39;或.03125为1/32&#39;&#39;&#39; - SO:如果用户决定改变它,有没有一种快速的方法用新的舍入变量重新计算整个表格? 谢谢!

1 个答案:

答案 0 :(得分:0)

在将toInch函数用作数据之前,您可以存储spa + count的原始值。

function addText(count) {
    var value = spa+count;
    $('<input type="text">').attr({'id':'d'+count, 'name':'d'+count}).data("OriginalValue", value).val(toInch(value)).prop('readonly', true).addClass("tagN").appendTo(divText);
}

然后当roundDown值改变时,你可以再次遍历输入并重新计算值。

$("input[type=text]").each(function(){
    $(this).val(toInch($(this).data("OriginalValue")));
});