2015-06-12 2 views
1

У меня есть кнопка отправки в моей форме, я не использую событие onsubmit, потому что я собираюсь добавить еще кнопку отправки в эту же форму. Так что я делаю так:onclick событие не работает на google chrome

<script type="text/javascript" src="../script/script.js"></script> 

<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data"> 
    <input type="submit" id="submit1" value="Add" onclick="return confirmMessage();"/> 
</form> 

function confirmMessage() 
{ 
    var x = confirm("..."); 
    if(x) 
    { 
     document.getElementById("my_post_value").value = "val1"; 
     return true; 
    } 
    return false; 
} 

Я использую последнюю версию Firefox, IE и Google Chrome, но в Chrome событие OnClick не работает.

+0

Можете ли вы добавить больше контекста для сценария? В частности, где он включен по сравнению со входом? – tcigrand

+1

Возможный дубликат [кнопка ввода кнопки onclick не работает в Chrome] (http://stackoverflow.com/questions/19372463/onclick-button-input-not-working-in-chrome) –

+0

Прекрасно работает на моем Chrome - какая ошибка сообщение? – Mackan

ответ

0

Вместо того, чтобы использовать onclick атрибут для вашей кнопки submit, onsubmit для <form>

Попробуйте заменить свой код следующим образом

<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data" onsubmit="return confirmMessage();"> 
    <input type="text" name="email" id="email"> 
    <input type="submit" id="submit1" value="Add"/> 
</form> 
+0

Да. но проблема в том, что я собираюсь добавить больше кнопок отправки, поэтому я не могу использовать onsubmit в этом случае. – heliosk

+1

Затем вы меняете их на обычные кнопки, а не на кнопки отправки. – Lal

0

Это работает хорошо в моем Chrome, и я никогда не имел проблем с использованием события на кнопках отправки, но поскольку вы используете внешний файл js, вы можете попробовать его с помощью чистого js-решения, а не inline:

См. пример ле ниже:

function confirmMessage() { 
 
    var x = confirm("Click OK to submit form"); 
 
    if (x) { 
 
    return true; 
 
    } 
 
    return false; 
 
} 
 

 
document.getElementById('submit1').onclick = function() { 
 
    return confirmMessage(); 
 
};
<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data" onsubmit="alert('submitting')"> 
 
    <input type="submit" id="submit1" value="Add" /> 
 
</form>

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

0

Поскольку вы находитесь в форме, событие onsubmit запускается автоматически, один из способов остановить его после подтверждения вызоваMessage(), вернуть false. Это прекратит распространение событий:

<form id="form_cad" action="my_php.php" method="post" 
    enctype="multipart/form-data" onclick="confirmMessage(); return 
    false;"> 
    <input type="text" name="email" id="email"> 
    <input type="submit" id="submit1" value="Add"/> 
</form> 
+0

Событие onsubmit должно запускаться только в том случае, если 'confirmMessage' возвращает true, и это, вероятно, по выбору. – Mackan

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