jquery函数参数计数器不工作

时间:2017-09-24 11:27:03

标签: jquery

我一直在研究一个函数,它会根据选择的选项在输入上给出不同的结果。但是我很难将它付诸实践。我需要使用"计数器"在这个功能,但我一直无法正常工作。任何人都可以提供有关如何使此代码有效的解决方案或提示吗?

这是jquery代码:

<input id="preco" type="text" name="preco" value='preco'><br><br>
    <input id="process" type="text" name="process" value='process'><br><br>
<div id="op1l" class="input">
    <input type="checkbox" id="op1" class="opcaopreco1" value="Start1" data-cpindex1="1" data-cpactive1="no">
    <label for="op1"></label>
    <span class="itext">preco1</span>
</div>      
<div id="op2l" class="input">
    <input type="checkbox" id="op2" class="opcaopreco1" value="Start2" data-cpindex1="2" data-cpactive1="no">
    <label for="op2"></label>
    <span class="itext">preco2</span>
</div>
<div id="op3l" class="input">
    <input type="checkbox" id="op3" class="opcaopreco1" value="Start3" data-cpindex1="3" data-cpactive1="no">
    <label for="op3"></label>
    <span class="itext">preco3</span>
</div>
<br>
<div id="op4l" class="input">
    <input type="checkbox" id="op4" class="opcaopreco2" value="Start1" data-cpindex2="1" data-cpactive2="no">
    <label for="op4"></label>
    <span class="itext">process1</span>
</div>      
<div id="op5l" class="input">
    <input type="checkbox" id="op5" class="opcaopreco2" value="Start2" data-cpindex2="2" data-cpactive2="no">
    <label for="op5"></label>
    <span class="itext">process2</span>
</div>
 <div id="op6l" class="input">
    <input type="checkbox" id="op6" class="opcaopreco2" value="Start3" data-cpindex2="3" data-cpactive2="no">
    <label for="op6"></label>
    <span class="itext">process3</span>
</div>
<ul id="z">
    <li id="z1">z1</li>         
    <li id="z2">z2</li>
</ul>

这是html代码:

<DatePicker selected={this.state.startDate} onChange={this.handleChange}/>

1 个答案:

答案 0 :(得分:1)

您要通过 test90 指定值返回值,但该函数不会返回任何值。因此,您应该从函数返回计数器。否则将从函数返回未定义的值。 试试这个,

function test90(element, input, inpArray, secIndex, inpActive, counter, Ipp) {
                Ipp = $("#" + element.id).data(inpActive);
                if (counter == 0){
                    counter++;
                    $(element).data(inpActive, "primary");
                    inpArray[0]=("result1");
                }else 
                if (Ipp=="no") {
                    counter++;
                    $(element).data(inpActive, "yes");
                    inpArray[secIndex]="result2";                   
                }else
                if (Ipp=="yes") {
                    counter--;
                    $(element).data(inpActive, "no");            
                    inpArray[secIndex]="";
                }else
                if (Ipp=="primary" && counter!==1) {
                    counter--;
                    $(element).data(inpActive, "no");
                    inpArray[0]="result3";       
                }else
                if (Ipp=="primary" && counter==1) {
                    counter--;
                    $(element).data(inpActive, "no");
                    inpArray[secIndex]="";
                    inpArray[0]="result4";     
                }
                $(input).val(inpArray[0]+inpArray[1]+inpArray[2]);
                $("#z1").html("counter = "+counter);

                $("#z2").html("Ipp = "+Ipp);  

                return counter;  /* ADD RETURN LIKE THIS */
            };
            var inpreco = ["", "", ""];
            var inprocess = ["", "", ""];
            var cpcounter1 = 0;
            var cpcounter2 = 0;

            $(".opcaopreco1").click(function () {
                cpcounter1=test90(this, "#preco", inpreco, "cpindex1", "cpactive1", cpcounter1, "Ipp1");
            });
            $(".opcaopreco2").click(function () {
                cpcounter2=test90(this, "#process", inprocess, "cpindex2", "cpactive2", cpcounter2, "Ipp2");
            });