2014-02-12 84 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絕對是一個完全不同的動物。 –