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, время: 05:43. |