2014-09-26 3 views
0

Я получаю все контакты из Mysql db, а затем показывая его по строке html. Каждая строка имеет onClick() метод. После нажатия на каждый номер он покажет Детали контакта с правой стороны от все контакты.Как проверить, пусто ли другое значение поля страницы, используя jquery

показывая все контакты:

echo "<tr onclick='getDetails($cdid), showthirdbox($cdid), visited(this);'>";        
echo "<td class='' valign='top' align='left' width='20'>$companyName</td>"; 
echo "<td class='' valign='top'>$family_name</td>"; 
echo "<td class='' valign='top'>$given_name</td>"; 
echo "<td class='' valign='top'>$department</td>"; 
echo "<td class='' valign='top'>$title</td>";  
echo "</tr>"; 

Этот getDetails() вызов (контактные данные) страница getContactDetails.php. На этой странице у меня есть поле под названием Note, где пользователь может вводить заметки.

Так что теперь я хочу, чтобы показать сообщение в Confirm пользователю только если пользователь написать что-то на Enter Note поле, но нажмите другие ряд (все контакты) без сохранения этого Enter Notes

Confirm mesaage будет: Do вы хотите сохранить эту заметку перед тем, как перейти к другому контакту? Да или Нет. Если Да, то saveNote() будет вызываться иначе, он загрузит новую строку контактов.

Я не знаю, как это сделать с помощью JQuery или Javascript? У вас есть идея или решение? Спасибо. Функция

getDetails():

function getDetails(id) { 
      id = id; 
      $.ajax({ 
      type:"post", 
      url:"getContactDetails.php", 
      data:"id="+id, 
      success:function(res){ 
       $('#visiable').show(); 
       $('#notebox_visiable').show(); 
       $('#thirdBox').show(); 

       $('#all_contact_details').html(res); 
       showthirdbox(id); 
       //showNotexBox(id); 
       //showAllNotesBox(id); 
       } 
      }); 
} 

getContactDetails.php страницы имеют Note поле:

<tr> 
    <td colspan="2">Enter Note<p id="demo"></p></td> 
</tr> 
<tr> 
    <td colspan="2">   
    <center><img id="loading-image" src="images/loading-image.gif" style="display:none; margin-bottom:10px !important;"/></center> 
    <div id="Notesboxsuccess"></div> 
    <form action="" method="post" id="showNotesBox" name="notebox">  
    <input type="hidden" value="<?php echo $id; ?>" name="cdid" id="cdid"/> 
<tr> 
    <td colspan="2"><textarea name="contentText" id="contentText" cols="35" rows="4" placeholder="enter note"></textarea></td> 
</tr> 
<tr> 
    <td colspan="2">&nbsp;</td> 
</tr> 
<tr> 
    <td colspan="2"><input type="submit" value="Save" name="submit" class="submit" id="addNewNotes"/></td> 
</tr> 
    </form> 

Главная страница Просмотр по щелчку на строке (Все контакты):

enter image description here

+0

Вы можете сделать это: добавить 'onchange' обработчика в поле примечания. В этом обработчике установите пользовательский атрибут в текстовое поле, например '$ (notebox) .attr ('change', 'yes')'. Затем в 'onclick' вашего списка контактов, прежде чем что-либо изменить, проверьте, есть ли в ящике атрибут' change = yes' и отображает ваше сообщение. – Michel

+0

@Michel Спасибо за ваш ответ. Можете ли вы показать мне, как именно это сделать? – Shibbir

ответ

0

change только срабатывает при размытии, так как пользователь остается в текстовом поле, нечего делать.

jQuery change()

Присоединить обработчик изменения событий:

$("#contentText").change(function() { 
    $("#contentText").attr("ididwritesomething","yep"); 
    } 

В кнопку Сохранить удалить атрибут jQuery removeAttr()

$("#contentText").removeAttr("ididwritesomething"); 

В обработчик щелчка для вашего списка контактов, проверьте атрибут установленный (from this question):

var attr = $("#contentText").attr("ididwritesomething"); 
if (typeof attr !== typeof undefined && attr !== false && attr=="yep"){ 
     //do you want to save? 
} 
0

Здесь вы можете использовать функцию jQuery Change, чтобы сделать это. Например,

<input id="field" type="text" value="abcd"> 
<a id="pid" href="#">Link</a> 

Для приведенной выше коды HTML код JQuery является следующим

$(document).ready(function(){ 
$("#pid").click(function(){ 
    $("#field").change(function(){ 
    alert("The text has been changed."); 
    });// end of change 
});// end of click function 
});//end of document 
Смежные вопросы