Javascript 电话输入掩码输入从线路末端开始

Javascript 电话输入掩码输入从线路末端开始,javascript,twitter-bootstrap,Javascript,Twitter Bootstrap,我需要2个带电话面罩的输入框。当前正在使用来自的maked输入。输入1位于我的页面主体中,并按预期工作 <input type="text" id= "s_id" name="s_id" class="form-control" placeholder="(xxx) xxx-xxxx"> 及以上标题: <script type='text/javascript'> $(window).load(function(){ $("#s_id").mask("(999)

我需要2个带电话面罩的输入框。当前正在使用来自的maked输入。输入1位于我的页面主体中,并按预期工作

<input type="text" id= "s_id" name="s_id" class="form-control" 
placeholder="(xxx) xxx-xxxx">

及以上标题:

<script type='text/javascript'>
$(window).load(function(){
$("#s_id").mask("(999) 999-9999");


$("#s_id").on("blur", function() {
    var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );

    if( last.length == 3 ) {
        var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
        var lastfour = move + last;

        var first = $(this).val().substr( 0, 9 );

        $(this).val( first + '-' + lastfour );
    }
});
}); 

</script>    

$(窗口)。加载(函数(){
$(“#s#id”).mask(“(999)999-9999”);
$(“#s#id”)。在(“模糊”,函数()上{
var last=$(this.val().substr($(this.val().indexOf(“-”)+1);
如果(last.length==3){
var move=$(this.val().substr($(this.val().indexOf(“-”)-1);
var lastfour=移动+最后;
var first=$(this.val().substr(0,9);
$(this.val)(第一个+'-'+最后四个);
}
});
}); 
我的问题是Bootstrap popover容器中的输入2

<input type="text" id= "phone" name="phone" class="form-control" 
placeholder="(xxx) xxx-xxxx">

我的逻辑步骤是使用不同的输入ID创建第二个脚本

<script type='text/javascript'>
$(window).load(function(){
$("#phone").mask("(999) 999-9999");


$("#phone").on("blur", function() {
    var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );

    if( last.length == 3 ) {
        var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
        var lastfour = move + last;

        var first = $(this).val().substr( 0, 9 );

        $(this).val( first + '-' + lastfour );
    }
});
}); 

$(窗口)。加载(函数(){
$(“#phone”).mask(“(999)999-9999”);
$(“#phone”)。在(“模糊”,函数(){
var last=$(this.val().substr($(this.val().indexOf(“-”)+1);
如果(last.length==3){
var move=$(this.val().substr($(this.val().indexOf(“-”)-1);
var lastfour=移动+最后;
var first=$(this.val().substr(0,9);
$(this.val)(第一个+'-'+最后四个);
}
});
}); 
问题是第二个输入掩码在我的引导popover中不起作用

我甚至尝试了第二个输入掩码脚本,该脚本成功地工作了,除了输入2,掩码焦点位于输入框的末尾,而不是输入框的第一个字符。任何一个输入掩码脚本的帮助都将不胜感激。

$(窗口)。加载
(页面加载时),
$(“#电话”)
可能还不存在,因为它位于popover中,需要用户交互才能使用。所以你不能这样做:

$(window).load(function(){
  $("#phone").mask("(999) 999-9999");
})
但是您可以使用bootstrap中的popover事件-

试着这样做:

$('#myPopoverThatContainsPhone').on('shown.bs.popover', function () {
  $("#phone", this).mask("(999) 999-9999");
})

不幸的是,我得到了相同的结果,即使用方法1和您的解决方案,popover中没有出现掩码。另一种可能性是,如果有人可以帮助我在使用Jasny.net输入掩码单击popover时选择“全部输入”框。