2016-08-15 4 views
1

У меня есть некоторые проблемы здесь с javascript. Я хочу, чтобы кто-то выбрал опцию и флажок, и если оба они отмечены, другие флажки не должны щелкнуть. Я попытался дать параметры функции 2 (один для опции и один для флажка).проверить, установлен ли выбранный флажок и флажок

function bs(id /*,chbxvalue */) 
{ 
    var selectElement = document.getElementById(id); 
    var selectValue = selectElement.options[selectElement.selectedIndex].value; 

    //var select2Element = document.getElementById(chbxvalue); 
    //var selectCHBXval = select2Element.options[select2Element.selectedIndex].value; 

    if((selectValue == "banana") /*&& (document.getElementById("apple").checked == true)*/) 
    { 
     document.getElementById("juice").checked = true; 
    } 
    else if(selectValue == "Salad") 
    {} 
} 

Дело в комментариях не работает.

Я изменил имена здесь. У кого-нибудь есть идея? Извините, я не очень хорош с javascript ....

+0

Является ли это опечатка 'вар selectValue = selectElement.options [ selectElement.selectedIndex.] значение; '? – Rohit

+0

Я думаю, что это должно быть 'var selectValue = selectElement.options [selectElement.selectedIndex] .value;' – Rohit

+0

'document.getElementsById()' - несуществующая функция, обратите внимание на 's' в вызове метода. Вам нужно использовать единственное число, потому что должен быть только один элемент * с заданным 'id'; поэтому он должен быть 'getElementById()' (удалить символ 's'). –

ответ

0

Похоже, вы хотели бы использовать просто

document.getElementById("...").disabled=true; 

Или, если вы хотите отключить несколько флажков сразу, присвоить им класс, а также использовать

elements = document.getElementsByClassName("my_class"); 
for(var i = 0; i < elements.length; ++i) 
{elements[i].disabled = "true"; } 
0

Я не совсем уверен, что это то, что вам нужно, но похоже, что вы хотите какую-то условную логику. Я сделал скрипку, чтобы проиллюстрировать это: https://jsfiddle.net/75uLereo/

var radios = document.myform.type, 
    select = document.myform.flavor; 

for(var i = 0; i < radios.length; i++){ 
    radios[i].addEventListener('change', checkValues); 
} 

select.addEventListener('change', checkValues); 


function checkValues(){ 
    var select = document.myform.flavor, 
    selectedValue = select.options[select.selectedIndex].value, 
    radioValue = document.querySelector('input[name = "type"]:checked').value; 

    if(radioValue !== "undefined"){  
     switch(selectedValue){ 
     case 'none': 
     case 'banana': 
     case 'strawberry': 
      alert("This is "+selectedValue+" and "+radioValue+". Do some conditional logic with the values!"); 
      break; 
     default: 
     break; 
     } 
    } 

} 

Это связывает функцию, чтобы изменить события на кнопки радио и выберите, а затем использует переключатель на различные значения, чтобы сделать все, что вы хотите, чтобы это сделать.

Обновлено:

Я сделал еще один пример, с флажками и логическое значение из флажков, если они выбраны

https://jsfiddle.net/75uLereo/2/

+0

Хорошо, это та же логика для флажков (не видел, что у вас были флажки в вопросе), но я до сих пор не знаю точно, что вы после. Если бы вы могли дать лучшее описание, я могу дать лучшее объяснение и пример. – Imbue

+0

Я сделал обновленный ответ со скрипкой выше, попробуйте проверить это. – Imbue

+0

Хорошо. Но, по крайней мере, это касается вопроса, с которым вы сталкиваетесь с .checked. В этом примере вы можете четко видеть, как работает bool if-statement, как вы просили, так что, по крайней мере, вы можете получить эту работу. Я все еще не уверен, что вы просто пытаетесь заставить кого-то сделать всю работу за вас, но, по крайней мере, удачи! – Imbue

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