Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Star Rating (https://javascript.ru/forum/jquery/2773-star-rating.html)

gaolong 09.02.2009 14:13

Star Rating
 
Здраствуйте.
Помогите как-то передать значение рейтинга в аякс для передачи на обработчик на пхп.
вот звездочки
<div class="Clear">
    <input class="star" type="radio" name="test" value="1"/>
    <input class="star" type="radio" name="test" value="2"/>
    <input class="star" type="radio" name="test" value="3"/>
    <input class="star" type="radio" name="test" value="4"/>
    <input class="star" type="radio" name="test" value="5"/>
   </div>


не могу получить чекед ...

пробовал через ф-цию .. но никак

<script type="text/javascript" language="javascript">
function gete(radio)
{
  for (var i=0; i < radio.length; i++){
    if (radio[i].checked) return radio[i].value;}

  return null;
}
</script>

через пример с кнопкой сабмит работает, но мне надо передать через обычную кнопку
буду рад любой помощи.

Андрей Параничев 09.02.2009 17:03

function getRadioValue(name) {
    var radio = document.getElementsByName(name);
    for (var i in radio)
        if (radio.hasOwnProperty(i))
            if (radio[i].checked)
                return radio[i].value;
    return false;
}

alert(getRadioValue("test"));

gaolong 09.02.2009 22:42

всеравно результат всегда false

Андрей Параничев 09.02.2009 22:57

gaolong,
Откуда выполняете код?

gaolong 09.02.2009 23:00

пробовал и с кнопки через алерт вывести...и через аякс в обработчик...ответ всегда фалс


да...и в ИЕ выводит ошибку...обьект не поддерживает это свойство или метод... hasOwnProperty, в опере молчит и выводит фалс

gaolong 10.02.2009 20:05



Может знаете другие варианты?) буду рад помощи...

Андрей Параничев 10.02.2009 20:22

Странно, почему в IE коллекция элементов имеет тип "object", но не является инстансом объекта (и не имеет метода hasOwnProperty), или это меня глючит?

Тогда перебирайте элементы обычным циклом:
<div class="Clear">
	<form>
	    <input class="star" type="radio" name="test" value="1" checked="checked" />
	    <input class="star" type="radio" name="test" value="2"/>
	    <input class="star" type="radio" name="test" value="3"/>
	    <input class="star" type="radio" name="test" value="4"/>
	    <input class="star" type="radio" name="test" value="5"/>
	</form>
</div>
<script type="text/javascript">
	function getRadioValue(name) {
	    var radio = document.getElementsByName(name);
	    for (var i = 0, l = radio.length; i < l; i++)
	        if (radio[i].checked)
	            return radio[i].value;
	    return false;
	}
	 
	alert(getRadioValue("test"));
</script>

Kolyaj 10.02.2009 21:07

Цитата:

Сообщение от Андрей Параничев
Странно, почему в IE коллекция элементов имеет тип "object", но не является инстансом объекта (и не имеет метода hasOwnProperty), или это меня глючит?

Потому что в ИЕ мир DOM и мир JavaScript -- разные миры.

gaolong 10.02.2009 21:57

не ну...реально...всеравно фалс выводит....
вот код такой...может чето нетак пишу...

да...и скопировал код ваш - при алерте при запуске - выводит 1, а если в кнопку вставить вызов - фалс....
да...и ещё факт - убрал звездочки...оставил сами радио...выводит норм.. тогда уже наверно блокирует класс Стар ...может он явно не фиксирует выбранное значение...а лишь визуально показывает выбор....может нада выводить в стиле кода jQuery?

<script language="javascript">
 function getRadioValue(name) {
        var radio = document.getElementsByName(name);
        for (var i = 0, l = radio.length; i < l; i++)
            if (radio[i].checked)
                return radio[i].value;
        return false;
    }
  </script>

<div class="Clear">
    <input class="star" type="radio" name="test" value="1"/>
    <input class="star" type="radio" name="test" value="2"/>
    <input class="star" type="radio" name="test" value="3"/>
    <input class="star" type="radio" name="test" value="4"/>
    <input class="star" type="radio" name="test" value="5"/>
   </div>
   

   
  <input type="button" onclick="alert(getRadioValue('test'))" value="gggg" />

gaolong 10.02.2009 22:27

все,решил методом научного тыка и кривом кодом из ф-ции сабмита jQuery. пасиб за попытки решить задачу.)


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