【问题标题】:jQuery json data not formattingjQuery json数据未格式化
【发布时间】:2014-02-12 23:52:49
【问题描述】:

好的。 jQuery 绝对不是我的强项。事实上,总的来说,我对 jQuery 和 js 都很陌生。我试图简单地格式化一个电话号码并显示它,但我得到的只是没有格式化的原始 10 位数字。代码如下:

function phoneFormat(phone) {
        phone = phone.replace(/[^0-9]/g, '');
        phone = phone.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
        return phone;
    }
function editUser(){
        var row = $('#dg').datagrid('getSelected');
        if (row){
            $('#dlg').dialog('open').dialog('setTitle','Prospect Details');
            $('#fm').form('load',row);
            url = 'update_user.php?id='+row.id;
            $('#dia_name').html(row.Name);
            var phone = $('#dia_phone').html(row.Phone);
            phone = phoneFormat(phone);
            $('#dia_phone').text(phone);
        }
    }


<div id="dlg" class="easyui-dialog" style="width:500px;height:280px;padding:10px 20px"
        closed="true" buttons="#dlg-buttons">
    <div id="dia_name" class="ftitle">Prospect Name</div>
    <div id="dia_phone" class="rtitle">Prospect Phone</div>
    <form id="fm" method="post" novalidate>
        <div class="fitem">
            <label>Prospect Name:</label>
            <input name="Name" class="easyui-validatebox" required="true">
        </div>
        <div class="fitem">
            <label>Phone:</label>
            <input name="Phone">
        </div>
        <div class="fitem">
            <label>Email:</label>
            <input name="Email" class="easyui-validatebox" validType="email">
        </div>
        <div class="fitem">
            <label>Received Datetime:</label>
            <input name="rcvd_datetime" class="easyui-validatebox" required="true">
        </div>
    </form>
</div>

数据来自一个非常简单的 php 脚本,该脚本肯定会正确地传回数据。我遇到的问题实际上只是电话号码的格式。该数字来自数据库查询作为纯 10 位字符串,我想将其显示为 (555) 555-5555 格式。

提前感谢您的帮助。再说一次,我对 javascript 非常陌生,所以请保持温和。

【问题讨论】:

    标签: javascript jquery json jquery-easyui


    【解决方案1】:

    .html 仅在您不提供参数时返回数据,请查看.html reference 以了解正确用法

    所以:

    var phone = $('#dia_phone').html(row.Phone);
    

    不会向phone 返回任何内容,因为您正在传递一个参数 应该是

    var phone = $('#dia_phone').html();
    

    你想要的是:

    var phone = phoneFormat(row.Phone);
    $("#dia_phone").html(phone);
    

    【讨论】:

    • 非常感谢,这帮我解决了问题。说到 JS,我完全是个菜鸟。多年来断断续续地使用 Perl 和 PHP,但 JS 绝对是完全不同的动物。
    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    相关资源
    最近更新 更多