Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   идентифицировать select в форме (https://javascript.ru/forum/misc/41544-identificirovat-select-v-forme.html)

djonA 18.09.2013 19:16

идентифицировать select в форме
 
Есть form с произвольным числом select и одинаковыми значениями input

Мне надо если хотя бы в 1 одном select'e значение input value = 0 не субмитнуть форму.

<form>
<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>

<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>

и так произвольное число select

<input type="submit">
</form>


если хотя бы в 1 select value=0 форму не субмитнуть


для 1 делал так:
function test ()
	{
	   
		var txt = document.getElementById('').value;
	    
 if(txt == '0')
	    {
	        alert('test');
	        return false;
	    }		
	    return true;
	}


Но если много select'ов как сделать?

ksa 18.09.2013 19:39

Цитата:

Сообщение от djonA
если много select'ов как сделать?

Как вариант, использовать

document.getElementsByTagName('select');

Далее в цикле...

djonA 18.09.2013 19:57

<form onsubmit="return test ();">
<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>

<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>


<input type="submit">
</form>

<script>
function test ()
{

var txt = getElementsByTagName('select.class');

тут надо как то добавить цикл, но что то мозги не варят как

if(txt == '0')
{
alert('test');
return false;
}      
return true;
}
</script>

рони 18.09.2013 20:13

djonA,
Цитата:

Сообщение от djonA
getElementsByTagName('select.class');

вы изобрели новый тег :dance:

рони 18.09.2013 20:15

Цитата:

Сообщение от djonA
тут надо как то добавить цикл, но что то мозги не варят как

вспомни былое идентифицировать id

djonA 18.09.2013 21:36

<form onsubmit="return test ();">
<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>

<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>


<input type="submit">
</form>

<script>
function test ()
{

 for (var txt1 = document.querySelectorAll("select.class"), c = 0; o < a.length; o++);

тут вроде все ок  а дальше не получается
	    o.addEventListener("change", function (d) {
	    return function () {
	        txt1[d].value = this.value
	    }
	}(o), !1);

и как условие написать тоже не получается

if(txt1 == '0')
{
alert('test');
return false;
}      
return true;
}
</script>

рони 18.09.2013 22:13

djonA,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
<meta charset="utf-8">
<script>
function test() {
    for (var b = document.querySelectorAll("select.class"), a = 0; a < b.length; a++)
        if ("0" == b[a].value) return false;
    return true
};
</script>
</head>
<body>
<form onsubmit="return test();">
<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>

<select class="class">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>

</select>


<input type="submit">
</form>
</body>
</html>

unl0k 18.09.2013 22:27

Меня опередили), но я тоже набросал на скорую руку.

<script type="text/javascript">
    function check(cls, num) {
        var items = document.getElementsByClassName(cls);
        for (var i = 0; i < items.length; i+=1){
            if (+items[i][items[i].options.selectedIndex].value === num) {
                return false;
            }
        }
        return true;
    }
</script>
<form>
    <select class="sel">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <select class="sel">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <input type="submit" onClick="return check('sel', 0)">
</form>

djonA 18.09.2013 22:30

Супер огромное спасибо пошел дальше грызть гранит науки

рони 18.09.2013 22:36

Цитата:

Сообщение от unl0k
(+items[items[i].options.selectedIndex].value

лихо закручено


Часовой пояс GMT +3, время: 15:04.