2015-10-01 4 views
0

Я пытаюсь запустить определенные строки кода (в настоящее время перечислены только как предупреждающие сообщения, но позже будет заменен на запросы json), когда все критерии соответствия пройдены - в частности, любой переключатель и один конкретный выбор (каждый вариант выбора будет иметь другой запрос для создания и очень уникальный код) - к сожалению, я не могу понять, насколько я должен работать, - я попытался просто сделать onclick-события, чтобы вызвать функцию и запускать довольно грязно выглядящие операторы if, но это не сработает (и пусть будет честно, даже если бы это произошло - это, безусловно, не соответствует никаким стандартам). Как мне сделать эту работу?Выполняется проверка нескольких критериев формы.

<input type='radio' name='emp' onclick='changeselected()' value='1'> 
<input type='radio' name='emp' onclick='changeselected()' value='2'> 
<input type='radio' name='emp' onclick='changeselected()' value='3'> 

<select id='umodt' name='umodt' disabled> 
     <option value=' '></option> 
     <option onclick='changeselected()' value='View'>View Employee</option> 
     <option onclick='changeselected()' value='Add'>Add Report</option> 
</select> 


      <script type="text/javascript"> 
function changeselected(){ 
if($('#emp').is(':checked')) { 
    if ($("#umodt").val() == "View") { 
     alert("view selected"); 
    } 
    if ($("#umodt").val() == "Add") { 
     alert("add selected"); 
    } 
} 

} 
</script> 
+0

, что отключение удаляется другой код, который не виден здесь –

ответ

1

"#emp" не выбирает элементы с именем "emp".

«#emp» выбирает первый элемент с идентификатором «ЭМИ»

Либо дать каждому флажок уникальный идентификатор, или использовать класс.

Затем измените свою функцию, чтобы использовать «это» в качестве селектора.

Что-то вроде:

function changeselected(){ 
if($(this).is(':checked')) { 
    if ($("#umodt").val() == "View") { 
     alert("view selected"); 
    } 
    if ($("#umodt").val() == "Add") { 
     alert("add selected"); 
    } 
} 

} 

Кроме того, канавы onclicks на ваших выбранных опций списка. Используйте onChange или onClick в фактическом списке.

+0

Поскольку вы harcoded обработчик событий в окошке, вы можете избежать использования классов/имена/Идентификаторы все вместе. Просто используйте этот селектор. – Mark

+0

, он должен уметь запускать, изменился ли параметр выбора или радиообъект, поэтому я выбрал внешнюю функцию –

+0

, а затем добавьте событие onchange в список выбора. Не в онлайне. – Mark

1

На каждой странице может быть только один элемент идентификатора. Вы должны создать переменную, которая ссылается на каждый переключатель, а затем перебирает их с помощью метода each. Затем вы можете использовать метод prop для установки атрибута selected.

function changeselected(){ 
    var radio = $("input[type=radio]"); 
    radio.each(function() { 
     if($(this).is(':checked')) { 
      var value = $(this).prop("value"); 
      $("option[value=" + value + "]").prop("selected", "selected"); 
     } 
    }); 
} 

http://jsfiddle.net/kwz0ufq9/1/

Смежные вопросы