2013-03-14 3 views
0

Этот код подтверждает информацию, заполненную пользователем формой.Если кнопка отключена, форма не отправляется.

На моем первом отправить я использую этот код и он предотвращает форму от получения представлены дважды:

<td width="30%" align="left"> 
    <input name="Submit" type="submit" value="OK" onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();"/> 
</td> 

Но код подтверждения, на моем втором представить, если я хочу, чтобы добавить «this.disable» в OnClick это не будет работать, а не до или после команды, она просто бездействует:

<form name="selectCarMakeModel" action="<?=$_SERVER['REQUEST_URI']?>" method="post"> 
    <? 
    foreach($_POST as $key => $val) { 
     echo '<input type="hidden" name="'. $key .'" value="'. myHTMLSpecialChars($val) .'">' . "\n"; 
    } 
    ?> 
    <input type="hidden" name="sticky" value="showForm"> 
    <input type="submit" name="goBack" value="No, Go Back">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input type="submit" name="submit" value="Si, continue" onClick="this.form.sticky.value='continue'"> 
</form> 

Благодарность

Edit: Sorry, Sorry ... Я не спрашиваю его правильно, первые совместный de Works нормально, проблема в том, что во втором коде, если я дважды нажимаю кнопку отправки, форма отправляется дважды, поэтому я пытаюсь добавить функцию this.disable, но во втором коде не будет работать, она не будет обрабатывать, если Я добавляю его, и если я его не добавлю, иногда форма отправляется дважды.

+0

Это 100% на клиенте и не имеет ничего общего с PHP. –

+0

Кажется довольно прямолинейным ... вы отключите его, поэтому вы не можете отправить его дважды, но вы спрашиваете, почему вы не можете отправить его снова ... повторно включить его? –

+1

Ваш HTML делает ребенка Тимом Бернерс-Ли криком. Пожалуйста, не используйте таблицы для макета, неразрывных пространств для интервалов или презентационных атрибутов. – Dai

ответ

0

Вам необходимо повторно включить после представления:

onclick="this.disabled=true; this.value='Sending...'; selectCarMakeModel.submit();this.disabled=false;" 

Это должно установить его в следующий раз.

+0

Спасибо, что она была. – jcslzr

2

disabled элементы не срабатывают события. Вам нужно будет включить свойство, то это позволит событию уйти.

+0

моя проблема заключается в том, что форма дважды отправляется по второму коду, но если я попытаюсь добавить «this.disable», как я сделал в первом коде, он не отправляет форму. – jcslzr

+0

Почему вы не отправляете форму с методом 'submit()', а затем отключается? вы пробовали это? – hamedkh

+0

@jcslzr Вы хотите сказать, например, если кто-то дважды щелкает? Это то, что вы пытаетесь предотвратить? – mattytommo

1

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

Смежные вопросы