2014-02-12 2 views
0

OK. jQuery определенно не моя сила. На самом деле я полный noob для jQuery и js в целом. Я пытаюсь просто форматировать номер телефона и отображать его, но все, что я получаю, это оригинальное 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

Спасибо, связка, которая исправила меня прямо вверх. Я полный noob, когда дело доходит до JS. Много лет занимается Perl и PHP, но JS определенно отличается от всего животного. –