2016-04-12 2 views
-2

новичок в JavaScript ищу, если еще в документе готовой функцииJavascript, если еще в документе готовой функции

мой HTML код

<form> 
    <input type="radio" name="hanu" id="Male" value="1" checked/> Male 
    <input type="radio" name="hanu" id="Female" value="2" /> Female 
</form> 

Теперь я ищу JavaScript, который мы можем запустить, если мы выбираем мужская необходимость выполнять некоторые функции на изменения, если мы выбираем женскую необходимость выполнения какого-либо другое на функции изменения

if (document.getElementById('Male').checked){ 
//some first change function 
} else { 
//some second change function 
} 

теперь проблема с утром в состоянии получить первую функцию изменения нет т возможность второй функции изменения

+0

Вы должны вызвать один и тот же код еще раз об изменении состояние переключателя. Следите за событием 'onchange' в JavaScript. –

ответ

1

Метод, предложенный Рори, абсолютно корректен. Это еще один метод с использованием Jquery.I вызывает функции каждый раз, когда нажимается эта опция.

$(document).ready(function(){ 
    $("#Male").on('click',function(){ 
    alert("Male"); 
    }); 
    $("#Female").on('click',function(){ 
    alert("Female"); 
    }); 
    }); 

Вот рабочая demo

В качестве альтернативы, вы можете также использовать класс по функции изменения, как Рори указал.

HTML

<input type="radio" class="gender" name="hanu" id="Male" value="1" checked/> Male 
<input type="radio" class="gender" name="hanu" id="Female" value="2" /> Female 

JQuery

$(".gender").on('change',function(){ 
    alert("changed"); 
    }); 

Вот рабочая demo

+1

его отлично работает благодаря быстрой помощи «Satej S» –

+0

@HanumaiahT, пожалуйста! вы/ответили на запрос и сами выбираете ответ. –

0

document.ready вызывается только первый раз, когда страница загружается, чтобы получить это снова и снова, вы должны перенести его на другой функции, кроме document.ready

+0

вы можете предложить другой способ: –

+0

вы можете использовать его на мероприятии OnChange –

1

Проблема в том, что документ Обработчик .ready выполняется только один раз в жизненном цикле страницы (при загрузке). Таким образом, прослушивание Javascript не выполняется, когда вы меняете флажки. Для этого нужно подключиться к событию change. Попробуйте это:

$(function() { 
    $(':checkbox').change(function() { 
     if ($(this).val() == '1') { 
      // Male selected, do something... 
     } else { 
      // Female selected, do something else... 
     } 
    }).change(); // trigger a change so this code also runs on load 
}); 

Селектор :checkbox может быть слишком общим для вашего фактического кода производства, я просто использовал его в качестве примера. Я бы предложил вам изменить его на нечто более конкретное, возможно, используя класс.

0

Проблема заключается в том, что ваш код выполняется только один раз.

Вы должны связать событие изменения для элементов:

$(document).ready(function() { 
    $('input[type="radio"]').change(function() { 
     if ($(this).is(':checked') && $(this).attr('id') == 'Male') { 
      //do something 
     } else if ($(this).is(':checked') && $(this).attr('id') == 'Female') { 

     } 
    }); 
}) 
+0

'$ (this) .is (': checked')' избыточно, так как радио, которое подняло событие, должно быть проверено, чтобы поднять событие 'change' –

0

Это должно дать вам идею без JQuery:

document.getElementById('Male').onclick = function(){ 
alert('male clicked!'); 
} 

вы связывание события OnClick элемента к яваскрипту функции который предупреждает строку ...

0

Чистый JavaScript решение, и я настоятельно рекомендую использовать форму события, а не вход, дать ему имя, добавить слушатель события

document.myform.onchange = function(event){ 
 
    alert(event.target.value); 
 
}
<form name="myform"> 
 
    <input type="radio" name="hanu" id="Male" value="1" checked/> Male 
 
    <input type="radio" name="hanu" id="Female" value="2" /> Female 
 
</form>