Javascript - вызов двух функций onClick - PullRequest
0 голосов
/ 04 марта 2012

У меня есть кнопка отправки на моем веб-сайте.

<form name="bbsform" action="<?=$PHP_SELF?>" method="post"
<input type="submit" value="Submit" onclick="this.disabled=true,this.form.submit();" />
</form>

Часть onClick отключает кнопку отправки сразу после первого нажатия, чтобы предотвратить возможную двойную отправку формы.И это прекрасно работает.

И я также сделал эту функцию javascript тоже.Допустим, это называется 'Guidance (bbsform)' .

Вкратце, когда пользователь забыл заполнить одно поле в форме, он отображает предупреждающее сообщение и фокусируется на поле.(Это работает так, что какой-то невидимый курсор автоматически нажимает на поле, поэтому пользователь может начать печатать прямо сейчас.) Эта функция также отлично работает.

Они оба прекрасно работают, по крайней мере, по отдельности.

Но когда я объединяю их так:

onclick="return Guidance(bbsform);this.disabled=true,this.form.submit();"

Только Навигация работает правильноработает.

Не могли бы вы сказать мне, что не так с кодом?

Спасибо за чтение.Я новичок во всем этом программировании, поэтому, пожалуйста, будьте щедрыми:)

Вот функция навигации. Извините, ни одно из решений не сработало .. Это действительно расстраивает.

function Guidance(frm){

if(frm.subject.value == ""){

alert("Please complete the title field.");

frm.subject.focus();

return false;  }


try{ content.outputBodyHTML(); } catch(e){ }

 if(frm.content.value == ""){

    alert("Please complete the message field.");

frm.content.focus();    return false;  }

Ответы [ 5 ]

1 голос
/ 04 марта 2012

Хорошо, вам также нужно будет опубликовать функцию навигации, но я думаю, все, что вам нужно сделать, это вернуть функцию навигации с истинным значением:

function Guidance(something){
    //do something

    return true;
}
0 голосов
/ 09 мая 2018

Решение по OP.

Я не смог найти правильный способ решения проблемы напрямую, поэтому я нашел обходной путь:)

У меня естьнашел другую функцию и отбросил 'onclick = "this.disabled = true, this.form.submit ();"'

новая функция JavaScript Я нашелэто - функция SubmitOnce ()

var submitted = 0;
function submitOnce() {
if(!submitted) {
  submitted ++;
  return true;
 }   else {
  return false;   }}

И я вызвал новую функцию прямо в форму onSubmit.

<form name="bbsform" action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" onsubmit="return submitOnce()">

Ипозже в коде кнопки отправки я включил функцию Навигация onClick.

<input type="submit" value="Submit" onclick="return Guidance(bbsform);" />

Это прекрасно работает!Нет двойной подачи независимо от того, что пользователи делают.(многократное нажатие клавиши Enter, двойное - тройное нажатие, все они отправляются только один раз!)

0 голосов
/ 04 марта 2012

уберите «возврат» в вашем клике, он не доходит до второго куска.

также вы должны рассмотреть ненавязчивый javascript как решение, тогда вы можете использовать анонимную функцию для выполнения этих двух.

0 голосов
/ 04 марта 2012
onclick="if (Guidance(bbsform)==true) {this.disabled=true;this.form.submit();} else {return false;}"
0 голосов
/ 04 марта 2012

Поместите два JS в одну функцию, а затем вызовите эту функцию onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...