javascript - 如何使用 Jquery 将光标聚焦在两个括号(圆括号)之间?

标签 javascript jquery html calculator

我有一个计算器,可以使用按钮来赋值。主要思想是生成公式。这些值被无缝地添加到“输入”中。所有的括号在输入你各自的按钮时,我需要发生的事情是继续在括号中输入值

enter image description here

Jquery

    $(document).ready(function () {
    $("input:button").click(function () {
        valor = $(this).val();
        actual = $("#ContentPlaceHolder1_formula").val();
        if (valor == "C") {
            $("#ContentPlaceHolder1_formula").val("");
        } else {
            if (valor == "=") {
                $("#ContentPlaceHolder1_formula").val(eval(actual));
            } else {
                $("#ContentPlaceHolder1_formula").val(actual + valor);
            }
        }
    });
});

HTML

                    <div class="form-group">
                    <input class="btn" type="button" value="()" id="parentesis" />
                    <input class="btn" type="button" value="1" id="1" />
                    <input class="btn" type="button" value="2" id="2" />
                    <input class="btn" type="button" value="3" id="3" />
                    <input class="btn" type="button" value="+" id="sumar" /><br />
                    <input class="btn" type="button" value="4" id="4" />
                    <input class="btn" type="button" value="5" id="5" />
                    <input class="btn" type="button" value="6" id="6" />
                    <input class="btn" type="button" value="-" id="restar" /><br />
                    <input class="btn" type="button" value="7" id="7" />
                    <input class="btn" type="button" value="8" id="8" />
                    <input class="btn" type="button" value="9" id="9" />
                    <input class="btn" type="button" value="*" id="multiplicar" /><br />
                    <input class="btn" type="button" value="0" id="0" />
                    <input class="btn" type="button" value="=" id="igual" />
                    <input class="btn" type="button" value="C" id="C" />
                    <input class="btn" type="button" value="/" id="dividir" />
                    <asp:Button ID="btn_login" OnClick="docreateformula" CssClass="btn btn-primary btn-lg center-block" Text="Guardar" runat="server"/>
                </div>    

使用该代码会发生这种情况: 5+()3*()+5+3 我需要: 5+(3*(5+3))

我该怎么做?

最佳答案

您使用以下代码使其工作

function occurrences(string, subString, allowOverlapping) {

    string+=""; subString+="";
    if(subString.length<=0) return string.length+1;

    var n=0, pos=0;
    var step=(allowOverlapping)?(1):(subString.length);

    while(true){
        pos=string.indexOf(subString,pos);
        if(pos>=0){ n++; pos+=step; } else break;
    }
    return(n);
}

$("input:button").click(function () {
    valor = $(this).val();
    actual = $("#ContentPlaceHolder1_formula").val();
    if (valor == "C") {
        $("#ContentPlaceHolder1_formula").val("");
    }
    else if(valor=="()")
    {
   var count1= occurrences(actual,'(',false);
   var count2= occurrences(actual,')',false);
        var count=count1+count2;
        if(count%2==0)  { $("#ContentPlaceHolder1_formula").val(actual+"("); 
                        } 
        else {
       $("#ContentPlaceHolder1_formula").val(actual+")"); 
        }
                }
    else {
        if (valor == "=") {
            $("#ContentPlaceHolder1_formula").val(eval(actual));
        } else {
            $("#ContentPlaceHolder1_formula").val(actual + valor);
        }
    }
});

演示链接:http://jsfiddle.net/asimshahiddIT/6hje7nvh/

关于javascript - 如何使用 Jquery 将光标聚焦在两个括号(圆括号)之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044779/

相关文章:

javascript - 在一个简单的 jquery 视差示例中使文本以不同的速度滚动

html - 我怎样才能让我的 div 保持固定并且不再改变位置?

javascript - 跨浏览器方法确定选择的 anchor 标记会导致文本区域模糊

php - 如何将 PHP 输出插入 html div 替换临时图形

javascript - 使用js获取开始日期和结束日期之间的周数

javascript - 如何设置每小时过期的浏览器cookie

JavaScript 对象访问;输出正常,选择不起作用

javascript - jquery fadeIn 函数作为回调函数,带有 $ ("this") 参数

Javascript 事件监听器和数组

javascript - 输入类型文件上的 NgModel