У меня есть таблица HTML с строками, представляющими записи базы данных. В ячейке последнего столбца есть форма с кнопкой отправки для удаления записи базы данных. Формы имеют уникальные идентификаторы, но поля внутри них просто имеют имена, и эти имена одинаковы для каждой формы.Предоставление формы для защиты от неполадок
У меня есть простое подтверждение пользователя, но я хочу убедиться, что форма не просто отправлена из-за неработающего Javascript (ошибка или что-то еще). Поэтому я решил оставить значение одного из скрытых полей пустым и заполнить его во время отправки (поле, которое требуется скрипту обработки, но такое же значение независимо от того, какая запись выбрана, поэтому легко назначить). Вот то, что я пробовал:
$(document).ready(function() {
$("form[id^='deltrans']").submit(function(e) {
if (confirm("Are you sure you want to delete this transaction?")) {
$(this).find("[name='uri']").val("my value...");
} else {
e.preventDefault();
}
});
});
Но с помощью $ (это) .find(), кажется, не работает - Firebug говорит $ (это) .find ("[имя = 'URI']"). val() не определено. Можете ли вы либо увидеть мою ошибку, либо получить более качественное, более простое предложение о том, как предотвратить случайные формы представления, если есть проблема с JS?
EDIT: На запросов в комментариях, вот Релевент HTML:
<form method="post" id="deltrans<? echo $row->TransID; ?>" action="processor.php">
<td class="button-in-table">
<input type="hidden" name="tid" value="<? echo $row->TransID; ?>">
<input type="hidden" name="uri" value="">
<input type="submit" name="deltrans" value="Del">
</td>
</form>
Выполняет ли '.filter()' лучше, чем '.find()'? – Sparky
Просьба показать нам html – Adil
Просьба показать HTML. У вас не должно быть элемента DOM в вашей форме с именем 'uri'. '$ (this)' должен указывать тег '