2014-10-06 3 views
0

Итак, у меня есть этот javascript-код ниже. Я пытаюсь сделать это так, когда пользователь нажимает на отмену в окне подтверждения. Выбранная ранее выбранная опция будет повторно выбрана. Другой вариант вместо предыдущего - это то, что мы могли бы выбрать вариант 2 на основе значения «А» вместо моего текущего способа выбора варианта 2 на основе массива имен радио.javascript radio button return previous checked value

<script type="text/javascript"> 
function confirmUnschedule() { 
    var checked = false; 
    var element = ""; 
    var inputs = document.getElementsByName('Acceptance'); 
     for (var i = 0; i < inputs.length; i++) { 
      if (inputs[i].checked) { 
      checked = true; 
      element = inputs[i]; 
      break; 
      } 
     } 
    if(checked==true){ 
     if (!confirm('Scheduling will be undone if you change the rating. Are you Sure?')){ 
      inputs[1].checked=true; 
     }; 
    }; 
    } 
</script> 

<input type='radio' name='Acceptance' value=' ' checked='checked' onclick='confirmUnschedule()'>option 1 
<br/> 
<input type='radio' name='Acceptance' value=' A' onclick='confirmUnschedule()'>option 2 
<br/> 
<input type='radio' name='Acceptance' value=' R' onclick='confirmUnschedule()'>option 3 
<br/> 
+0

Может ли вы мириться JSFiddle с HTML, чтобы мы могли можно лучше картину того, что вы пытаетесь сделать? – Paul

ответ

1

Если вы позволите своей функции вернуть false, событие прерывается, и группа переключателей возвращается в предыдущее состояние.

Редактировать: используйте return в атрибуте onclick.

Html

<input type='radio' name='Acceptance' value=' ' checked='checked' onclick='return confirmUnschedule();'>option 1 
<br/> 
<input type='radio' name='Acceptance' value=' A' onclick='return confirmUnschedule();'>option 2 
<br/> 
<input type='radio' name='Acceptance' value=' R' onclick='return confirmUnschedule();'>option 3 
<br/> 

Javascript

function confirmUnschedule() { 

    var checked = false; 
    var element = ""; 
    var inputs = document.getElementsByName('Acceptance'); 

    for (var i = 0; i < inputs.length; i++) { 
     if (inputs[i].checked) { 
      checked = true; 
      element = inputs[i]; 
      break; 
     } 
    } 
    if (checked === true) { 
     if (!confirm('Scheduling will be undone if you change the rating. Are you Sure?')) { 
      return false; 
     } 
    } 
} 

jsFiddle = http://jsfiddle.net/ahsjoe0x/

+0

Не выбрал для меня предыдущий вариант. Он остается выбранным для любой новой опции, которую я выбираю. –

+0

Se мои обновления, вы можете попробовать его с помощью ссылки jsFiddle внизу. – LTJD