Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2011, 19:41
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

не работает onsubmit = ("return false;")
Код:
<script type="text/javascript" >document.forms[0].onsubmit = ("return false;")</script>
такая конструкция работает только в опере, в остальных браузерах, не робит как исправить?
в чем проблема?
--------

Код:
form method="post" action="setting.php" onsubmit="return false">
такой вариант не годится, необходимо в самом скрипте что бы был
Ответить с цитированием
  #2 (permalink)  
Старый 03.11.2011, 19:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,991

Как вариант...

<script type="text/javascript" >
   document.forms[0].onsubmit = function(){return false;};
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 03.11.2011, 21:06
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от czp
работает только в опере
Опера как всегда)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2011, 10:11
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

тогда у меня не работает такая конструкция почему?
function formaddfunction() {
  var oforms = document.forms;
  var fmethod;
  for (i = 0; i < oforms.length; i++) {
	fmethod = oforms[i].method;
    oforms[i].onsubmit = function() { sendquery(this, fmethod); return false; };
  }
}

есле без sendquery(this, fmethod); то работает, а с ней работает только первая последняя форма, а верхние формы нет, и когда грузится штмл он автоматически запросы с верхних форм шлет пустые ячейки
function formaddfunction() {
  var oforms = document.forms;
  var fmethod;
  for (i = 0; i < oforms.length; i++) {
	fmethod = oforms[i].method;
    oforms[i].onsubmit = ('sendquery(this, '"+fmethod+"'); return false;');
  }
}

а так робит все четко но только в опере))
----------
что подскажете?

Последний раз редактировалось czp, 04.11.2011 в 10:15.
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2011, 10:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,991

Сообщение от czp
тогда у меня не работает такая конструкция почему?
Почём мне знать... Я на огрызках гадать не умею. У меня всё работает...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	alert(1);
};
</script>
</head>
<body>
<form action='http://javascript.ru'>
	<input type='submit' value='Test' />
</form>
<script type="text/javascript">
document.forms[0].onsubmit=function(){
	Go(); 
	return false;
};
</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2011, 13:55
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

так правильно, у вас там на одну форму работает, у меня тоже когда одной форме присваеваешь, вы же на цикл посмотрите она перебирает все формы которые только есть, есле 20 форм то он каждой форме присваивает онсубмит
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2011, 16:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,991

Вот, не 20 форм конечно... Но все равно ничего не отправляется...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	alert('Все равно форма не отправится...');
};
</script>
</head>
<body>
<form action='http://javascript.ru'>
	<input type='submit' value='Test' />
</form>
<form action='http://javascript.ru'>
	<input type='submit' value='Test' />
</form>
<form action='http://javascript.ru'>
	<input type='submit' value='Test' />
</form>
<form action='http://javascript.ru'>
	<input type='submit' value='Test' />
</form>
<script type="text/javascript">
var i=0;
while (document.forms[i]) {
	document.forms[i].onsubmit=function(){
		Go(); 
		return false;
	};
	i++;
};
</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2011, 17:35
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

нашел свой бок)) ваше схема полностью работает, огромное спасибо то у меня бока с ПОСТ и ГЕТ по циклу

тему закройте
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2011, 21:05
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

function formpg() {
  var oforms = document.forms;
  var fmethod;
  for (i = 0; i < oforms.length; i++) {
    fmethod = oforms[i].method;
    oforms[i].onsubmit = function() { sendquery(this, fmethod); return false; };
  }
}

есть такая конструкция, суть ее такова, что она считывает все формы, и всем формам задает
sendquery(this, fmethod); return false;
------
fmethod - это метод передачи формы тоесть ПОСТ или ГЕТ
все отлично робит, но один момент не работает,sendquery(this, fmethod) - он всегда подставляет метод последней формы, тоесть
есле идет 2 формы первая к примеру пост а вторая гет, то во все формы он поставит гет - sendquery(this, fmethod=ГЕТ)
sendquery(this, 'get')


как мне написать что бы скрипт работал как надо, есле пост то пост, есле гет то гет???? не пойму в чем проблема вроде правильно завернул фукнцию
Ответить с цитированием
  #10 (permalink)  
Старый 04.11.2011, 21:30
Интересующийся
Отправить личное сообщение для jazzz13 Посмотреть профиль Найти все сообщения от jazzz13
 
Регистрация: 31.05.2011
Сообщений: 25

function formpg() {
  var oforms = document.forms;
  for (i = 0; i < oforms.length; i++) {
    (function(i){
         var fmethod = oforms[i].method;
         oforms[i].onsubmit = function() { sendquery(this, fmethod); return false; };
    })(i);
  }
}
Если я верно понял вопрос, то тебе нужно попробовать как написано выше. Если это то, что нужно, то почитай про "замыкания".

UPD Господа профессионалы, теперь вопрос от меня: мы же можем и не посылать 'i' в замыкающею функцию, верно? или это, все таки, обязательно? Вопрос касается данного случая.

Последний раз редактировалось jazzz13, 04.11.2011 в 21:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает OnSubmit="return false;" под IE9 konstantyn Events/DOM/Window 7 14.09.2011 20:55
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Как работает onsubmit sanhai Events/DOM/Window 2 17.06.2011 22:34
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32