JQuery在某些情况下没有对一组输入框的值求和

时间:2014-03-03 22:20:26

标签: javascript jquery asp.net-mvc class onchange

我通过在document.Ready()内调用它来调用它,该函数在一个名为startSript.js文件的文件中定义,以汇总一组输入框的值。

对此函数的调用的一个示例是:autoSumBySelector('.class1', 'outputClass1')将使用类属性class1对输入框的值求和,并在具有类属性{{1}的div标记中显示总和}}。

除了将值输入到输入框(例如outputClass1)之后,如果我将其中一个输入框的值更改为0,或者如果我将该值完全删除以使其为空,则该函数正常工作。在这种情况下,输出div标签不会更改该值。

说,如果我在三个框中输入值5,10,15,输出div将正确显示30.如果我将值10更改为1,则总和将正确显示为21.但如果我更改任何三个值为0或空白,输出div不会改变,仍会显示先前的值(例如,21)。

class1

修改

这是一个ASP.NET MVC应用程序。我有两个脚本文件common.js和startScript.js,它们在Index.cshtml(视图)文件中按如下方式加载,如下所示。 :

var autoSumBySelector = function (selector, outputselector, func, fixed) { //Attaches the Event to the selector or array of selector if (selector != undefined) { $(selector).change(function (event) { var validation = true; if (fixed == undefined) { fixed = 0; } if (typeof (func) == "function") { validation = func(this, outputselector); } if (validation) { //This is to sum currency value of given selector var total = 0; $(selector).each( function () { var vl = this.value.replace(/,/g, ''); if (!isNaN(vl) && vl.length != 0) { total += parseFloat(vl); } }); if (outputselector != undefined) { $(outputselector).val(total).change(); } else //if the output div is not defined then it returns the value return sum; } else { event.preventDefault(); } }); } };

该函数在common.js中定义,调用由starScript.js调用,如下所示:

@{
        ViewBag.Title = "App title";
    }
    @section Scripts{
        <script type="text/javascript" src="~/Scripts/common.js"> 
        </script>
        <script type="text/javascript" src="~/Scripts/startScript.js">
    .........
}
<form>
HTML tags here
 .....
 partial views rendered here
</form>

0 个答案:

没有答案