интеграция JavaScript с возвратом из другой функции - PullRequest
0 голосов
/ 27 сентября 2019

Вот форма

 <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, исчезли.

...