2014-02-12 81 views
0

好的。 jQuery绝对不是我的力量。事实上,我总的来说对jQuery和js都是noob。我试图简单地格式化一个电话号码并显示它,但我得到的是原始的10位数字,没有格式。这里是代码:jQuery json数据不格式

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一般非常陌生,所以请温和。

回答

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); 
+0

谢谢了一堆,这让我纠正了。当谈到JS时,我是一个总喜欢的人。多年来一直在做Perl和PHP,但JS绝对是一个完全不同的动物。 –