Javascript/jQuery会破坏页面的格式

Javascript/jQuery会破坏页面的格式,javascript,jquery,Javascript,Jquery,添加以下代码时,我的页面格式不正确: $('#Inventory_accountNumber').blur(function(){ var accounts = $(this).val(); accounts = accounts.replace(/-/g,''); var accountNum = []; accountNum = accounts.split(","); for(var i=0;i<accountNum.length;i++) {

添加以下代码时,我的页面格式不正确:

$('#Inventory_accountNumber').blur(function(){
    var accounts = $(this).val();
    accounts = accounts.replace(/-/g,'');
    var accountNum = [];
    accountNum = accounts.split(",");
    for(var i=0;i<accountNum.length;i++) {
        var newstr = '';
        if(accountNum[i].length == 24) {
            newstr += accountNum[i].substring(0,4) + '-';
            newstr += accountNum[i].substring(4,7) + '-';
            newstr += accountNum[i].substring(7,10) + '-';
            newstr += accountNum[i].substring(10,14) + '-';
            newstr += accountNum[i].substring(14,20) + '-';
            newstr += accountNum[i].substring(20,24) + '-';
            newstr += '0000-000';
            accountNum[i] = newstr;
        }
        else if(accountNum[i].length == 31) {
            newstr += accountNum[i].substring(0,4) + '-';
            newstr += accountNum[i].substring(4,7) + '-';
            newstr += accountNum[i].substring(7,10) + '-';
            newstr += accountNum[i].substring(10,14) + '-';
            newstr += accountNum[i].substring(14,20) + '-';
            newstr += accountNum[i].substring(20,24) + '-';
            newstr += accountNum[i].substring(24,28) + '-';
            newstr += accountNum[i].substring(28,31);
            accountNum[i] = newstr;
        }
    }
    accountNum.join(',');
    $(this).val(accountNum);

});
$('#存货_账户号').blur(函数(){
var accounts=$(this.val();
accounts=accounts.replace(/-/g');
var accountNum=[];
accountNum=accounts.split(“,”);
对于(var i=0;i

如您所见,它在JSFIDLE中工作,但存在实时格式问题。下面的屏幕截图描述了添加和不添加代码的页面。此代码是两个代码库之间代码的唯一更改。如果有问题,Yii将用作框架

之前

之后 jsfiddle.net/Lwv4U/25

JS:

$('#存货_账户号').blur(函数(){
$(this).val(函数(索引,值){
var str=value.replace(/[^\d]/g',);
如果(str.length<10)返回str;
返回str.match(/(\d{4})(\d{3})(\d{3})(\d{4})(\d{6})(\d{4})(\d{4})(\d{4})(\d+?/)
.slice(1)。连接(“-”)。替换(/\-+/g,“-”);
});
});

您应该查看控制台上是否存在阻止执行其他命令的错误scripts@svillamayor控制台中没有错误,这是我的问题。我认为您应该提供有关HTML代码、脚本等的更多信息,以便人们帮助您。使用firebug检查分配给您的accordian Div的css类之前在这之后。您是否使用jQuery UI?对@WebChemist优化版本的另一个修改。捕获非数字字符,并格式化任何长度的字符串。
$('#Inventory_accountNumber').blur(function(){
  $(this).val(function(index, value){
    var str = value.replace(/[^\d]/g,'');
    if (str.length < 10) return str;  
    return str.match(/(\d{4})?(\d{3})?(\d{3})?(\d{4})?(\d{6})?(\d{4})?(\d{4})?(\d+)?/)
    .slice(1).join("-").replace(/\-+/g,'-');
  });
});