Google Chrome: не выполняется JavaScript который нормально работает в IE8
Сабж.
Хочу добавить, что настройки безопасности в Chrome выставлены "allow all sites to run javascript". <html> <form id="myform" method=post action="" enctype="text/plain" style="background:'e0e0e0'"> Кому: <input name="email_to" type="text" value=""> <p> От кого: <input name="email_from" type="text" value=""> <p> Сообщение: <br> <textarea name="txtmessage" type="text" value=""></textarea> <p> <input name="btnsend" type="submit" value="Отправить" > </form> <script> function myform.onsubmit() { var noemail = myform.email_to.value.indexOf('@') == -1 var notext = !myform.txtmessage.value var xtext = "\nПисьмо не отправлено" if (noemail || notext) { event.returnValue = false if (noemail) alert("Неправильный адрес получателя" + xtext) else alert("Нет текста сообщения" + xtext) } else myform.action = "mailto:" + myform.email_to.value } </script> </html> Код примера взят из книги Вадима Дунаева Сайт Вадима Дунаева |
Цитата:
http://javascript.ru/tutorial/dom/search#poisk-po-id |
К сожалению, исправление кода не помогло:
<html> <form id="myform" method=post action="" enctype="text/plain" style="background:'e0e0e0'"> Кому: <input name="email_to" id="email_to" type="text" value=""> <p> От кого: <input name="email_from" type="text" value=""> <p> Сообщение: <br> <textarea name="txtmessage" id="txtmessage" type="text" value=""></textarea> <p> <input name="btnsend" type="submit" value="Отправить" > </form> <script> function myform.onsubmit() { var email_to_value = document.getElementById('email_to').value var noemail = email_to_value.indexOf('@') == -1 var notext = !document.getElementById('txtmessage').value var xtext = "\nПисьмо не отправлено" if (noemail || notext) { event.returnValue = false if (noemail) alert("Неправильный адрес получателя" + xtext) else alert("Нет текста сообщения" + xtext) } else myform.action = "mailto:" + email_to_value } </script> </html> Может быть тут какая-то другая фундаментальная особенность Chrome? Даже цвет фона не устанавливается. А в IE8 всё работает, как в первом так и во втором варианте. |
По быстрому накатал
document.getElementById('myform').onsubmit = function(event) { var email_to_value = document.getElementById('email_to').value var noemail = email_to_value.indexOf('@') == -1 var notext = !document.getElementById('txtmessage').value var xtext = "\nПисьмо не отправлено" if (noemail || notext) { event.returnValue = false if (noemail) alert("Неправильный адрес получателя" + xtext) else alert("Нет текста сообщения" + xtext) return false; } else myform.action = "mailto:" + email_to_value } |
Цитата:
|
В таком виде работает:
<html> <form id="myform" method="post" action="" enctype="text/plain"> Кому: <input name="email_to" id="email_to" type="text" value=""> <p> От кого: <input name="email_from" type="text" value=""> <p> Сообщение: <br> <textarea name="txtmessage" id="txtmessage" type="text" value=""></textarea> <p> <input name="btnsend" type="submit" value="Отправить" > </form> <script> document.getElementById('myform').onsubmit = function(event) { var email_to_value = document.getElementById('email_to').value var noemail = email_to_value.indexOf('@') == -1 var notext = !document.getElementById('txtmessage').value var xtext = "\nПисьмо не отправлено" if (noemail || notext) { event.returnValue = false if (noemail) alert("Неправильный адрес получателя" + xtext) else alert("Нет текста сообщения" + xtext) } else document.getElementById('myform').action = "mailto:" + email_to_value } </script> </html> Свойство style я всё-таки выкинул из myform потому, что не понял как заставить работать заливку фона в Chrome. Большое всем спасибо! Тему можно считать закрытой. |
Часовой пояс GMT +3, время: 18:53. |