#jquery
#jquery
Вопрос:
Мой event.preventdefault
не работает. На самом деле я хочу, чтобы, когда пользователь нажимает кнопку добавить, ему будет предложено «сначала ввести поле», если все поля пусты.
Для этого я использую такой флаг, чтобы предотвратить сохранение данных, если все поля пусты, как показано ниже: (также, когда я нажимаю кнопку, она показывает введите поле, и после этого оно перейдет к функции ajax, даже если я применил event.preventdefault();
я точно не знаю, где я ошибаюсь)
Заранее спасибо,
Вот мой код:
<tr>
<td>
<button type="button" name="add"> //this is my add button
Add
</button>
</td>
</tr>
$("#tabs").tabs();
$("button").button();
$("button").click(function(event){
var flagg=0;
if( $("#patient_name").val() == "" )
{
flagg=1;
}
if(flagg == 1)
{
alert("enter the patient name!!");
event.preventDefault();
}
form_name = $(this).parents("form").attr('name');
var params = $("#" form_name).serialize();
params=params.replace(/amp;/g,'~^~^^');
table_name = "patient_info";
button_name = "temp";
$.ajax({
type: "POST",
url: "ajax1.php",
data: "params=" params "amp;button_name=" button_name,
success: function(msg){
//alert(msg);
if (msg == "true")
{
alert("Patient data sucessfully saved!");
window.location.replace("ivf2.php?id=" $("#id").val());
}
else
{
//alert("Failed to save, please check and try again!");
}
}
});
});
Ответ №1:
event.preventDefault
просто останавливает выполнение любого другого подключенного события (например, что-то в onclick
или href
). Это не останавливает ваш собственный код javascript.
Сделайте это:
if(flagg == 1)
{
alert("enter the patient name!!");
event.preventDefault();
return;
}
Ответ №2:
В строке if(flagg == 1)
вы вызываете event.preventDefault(), но затем продолжаете работу с вашим ajax post. В этот момент вы хотите вернуться через return;
из вашего обработчика кликов, чтобы он не продолжал отправку формы.