2016-12-19 3 views
-3

Я хочу выбрать переключатель в зависимости от поля ввода. Это кажется очень простым, но не работает. В основном пользователь заполняет форму и в зависимости от поля ввода состояния, он выбирает переключатель налоговой политики штата.Проверить переключатель, если

Код, приведенный ниже, не вызывает увольнения по какой-либо причине, любые идеи?

Поле ввода

<div class="form-group"> 
<label for="state" class="col-sm-3 control-label">State</label> 
    <div class="col-sm-9"> 
    <input type="text" class="form-control" id="state" name="state" placeholder="State" onblur="picktax();" required /> 
    </div> 
</div> 

Радиокнопка

<div class="form-group"> 
<label for="emailaddress" class="col-sm-3 control-label">Tax</label> 
<div class="col-sm-9"> 
    <br> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio1" class="radio" value="0"//> 
      <span class="lbl">Tax Exempt</span> 
     </label> 
     <br> 
    </div> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio2" class="radio" value="0.0875" /> 
      <span class="lbl">NYC 8.875%</span> 
     </label> 
     <br> 
    </div> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio3" class="radio" value="0.08625" /> 
      <span class="lbl">LI 8.625%</span> 
     </label> 
     <br> 
    </div> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio4" class="radio" value="0.07" /> 
      <span class="lbl">NJ 7%</span> 
     </label> 
     <br> 
    </div> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio5" class="radio" value="0.06" /> 
      <span class="lbl">Philly 6%</span> 
     </label> 
     <br> 
    </div> 
    <div class="col-sm-9"> 
     <label class="checkbox-inline"> 
      <input type="radio" class="px" name="tax2" id="radio6" class="radio" value="0.0635" /> 
      <span class="lbl">CT 6.35%</span> 
     </label> 
     <br> 
    </div> 
</div> 

Сценарий

<script> 
function picktax() { 

var statevalue = document.getElementById('state').value; 
var nyvalue = "NY"; 
var livalue = "LI"; 
var njvalue = "NJ"; 

if (statevalue == nyvalue) { 

$("#radio2").prop("checked", true) 

} elseif (statevalue == livalue) { 

$("#radio3").prop("checked", true) 

} elseif (statevalue == njvalue) { 

$("#radio4").prop("checked", true) 


} else { 

alert("test"); 
} 

} 
</script> 

обновлен, до сих пор не стреляя

+4

'' = для присваивания, '==' и '' === являются для сравнения. – Pointy

+2

Также в JavaScript нет ключевого слова 'elseif'. Держите консоль разработчика открытой, чтобы вы видели ошибки, сообщаемые браузером. – Pointy

ответ

0

Ваш пример показывает, что вы новичок в JavaScript, так пока я бы не закодировать его совсем, как это я вот ваш код исправлен достаточно для работы.

Как указано в комментариях, в JS нет ключевого слова elseif, и вы должны использовать оператор double или triple equals для оценки.

Пустота, вы приближались к чему-то работоспособному.

function picktax() { 
 

 
var statevalue = document.getElementById('state').value; 
 
var nyvalue = "NY"; 
 
var livalue = "LI"; 
 
var njvalue = "NJ"; 
 

 
if (statevalue == nyvalue) { 
 

 
$("#radio2").prop("checked", true) 
 

 
} else if (statevalue == livalue) { 
 

 
$("#radio3").prop("checked", true) 
 

 
} else if (statevalue == njvalue) { 
 

 
$("#radio4").prop("checked", true) 
 

 
} else { 
 

 
alert("test"); 
 
} 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-group"> 
 
<label for="state" class="col-sm-3 control-label">State</label> 
 
    <div class="col-sm-9"> 
 
    <input type="text" class="form-control" id="state" name="state" placeholder="State" oninput="picktax();" required /> 
 
    </div> 
 
</div> 
 

 
<div class="form-group"> 
 
<label for="emailaddress" class="col-sm-3 control-label">Tax</label> 
 
<div class="col-sm-9"> 
 
    <br> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio1" class="radio" value="0"//> 
 
      <span class="lbl">Tax Exempt</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio2" class="radio" value="0.0875" /> 
 
      <span class="lbl">NYC 8.875%</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio3" class="radio" value="0.08625" /> 
 
      <span class="lbl">LI 8.625%</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio4" class="radio" value="0.07" /> 
 
      <span class="lbl">NJ 7%</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio5" class="radio" value="0.06" /> 
 
      <span class="lbl">Philly 6%</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
    <div class="col-sm-9"> 
 
     <label class="checkbox-inline"> 
 
      <input type="radio" class="px" name="tax2" id="radio6" class="radio" value="0.0635" /> 
 
      <span class="lbl">CT 6.35%</span> 
 
     </label> 
 
     <br> 
 
    </div> 
 
</div>

0

Как указано в комментариях, код имеет так я синтаксические ошибки. Кроме того, есть несколько способов улучшить его, например, я использую switch вместо if. Ничего плохого в if, я просто предоставляю пример. Фиксированный код будет:

function picktax() { 

    var statevalue = $('#state').val(); 
    var radio = $(); 

    switch (statevalue) { 
     case "NY": 
      radio = $("#radio2"); 
      break; 
     case "LI": 
      radio = $("#radio3"); 
      break; 
     case "NJ": 
      radio = $("#radio4"); 
      break; 
     default: 
      alert("test"); 
      break; 
    } 

    radio.prop("checked", true); 
}