Вот форма
<cfoutput>
<form name = "xrefform"
id = "xrefform"
action = ""
method = "post"
style = "width:100%; border:0px solid red"
onkeydown = "if (event.keyCode == 13 || event.which == 13) {return false};"
onsubmit = "return submitxref1('#coltop#', '#col#')">
</cfoutput>
Если submitxref1 возвращает false, форма не должна отправляться.Однако действие не указано, поскольку в зависимости от различных параметров в программе может быть несколько действий.Поэтому я использую javascript для отправки этой формы:
<input
type = "Submit"
name = "SubmitXref"
class = "submitbut"
value = "Submit"
style = "margin-left: #marl#; margin-bottom: 20px; margin-top:20px"
onclick = "aasubmit('#target#', 'xrefform','#coltop#', '#col#')">
Вот javascript, который выполняет отправку:
function aasubmit(target,xsource, coltop, col) {
//xsource" is the form name and the target is the program to submit to
aret = submitxref1(coltop,col);
if(aret == true) {
document.getElementById(xsource).action = target;}
Это работает, но досадно неэффективно.Функция проверки "submitxref1" вызывается в aasubmit и, по-видимому, также из вкладки формы.Так что он запускается как минимум дважды.
Поскольку onsubmit внутри тега формы, по-видимому, запускает функцию submitxref1, я подумал, что, возможно, вызов к нему в aasubmit избыточен.Итак, я написал более простую функцию:
function buttonsubmit(target, source) {
var q = document.getElementById(source);
q.action = target;
q.submit();
Это действительно вызвало запуск функции xref1submit, но, хотя она и должна возвращать false, buttonsubmit не получила сообщение и все равно отправила форму.
Есть ли код, который я могу добавить в buttonubmit, чтобы избежать отправки, когда возврат из xrefsubmit равен false?
Я попытался aasubmit и отбросил строку отправки из тега формы.Форма не отправлена, но все сообщения об ошибках, сгенерированные xref1submit, исчезли.