2013-09-30 3 views
1

У меня есть два набора переключателей в формате html button и button1. Я использую ниже код дляСохранение радиокнопки проверено после отправки формы

1.Keep значение по умолчанию проверяется (question1 для первого набора и answer2 для следующего набора)

2.Keep пользователь радио кнопки выбора после отправки формы

<div id="button_set1"> 
<input onClick="show_seq_lunid();" type="radio" name="button" value="Yes" <?php if(isset($_POST['button']) && $_POST['button'] == 'Yes') echo ' checked="checked"';?> checked /><label>question1</label> 
<input onClick="show_list_lunid();" type="radio" name="button" value="No" <?php if(isset($_POST['button']) && $_POST['button'] == 'No') echo ' checked="checked"';?> /><label>answer1</label> 
</div> 

<div id="button_set2"> 
<input onClick="os_hpux();" type="radio" name="button1" value="Yes" <?php if(isset($_POST['button1']) && $_POST['button1'] == 'Yes') echo ' checked="checked"';?> /><label>question2</label> 
<input onClick="os_others();" type="radio" name="button1" value="No" <?php if(isset($_POST['button1']) && $_POST['button1'] == 'No') echo ' checked="checked"';?> checked /><label>answer2</label> 
</div> 

Здесь, если я использую ниже код, вторая радиокнопка button1 не придерживается выбора пользователя после отправки формы, она возвращается к установленному по умолчанию состоянию. answer2. Но первый набор переключателей работает нормально. Если я удалю по умолчанию код checked из кода, обе переключатели работают нормально после отправки формы. Как я могу держать переключатель включенным после отправки формы при использовании checked по умолчанию для радиостанций

+0

Для этого вам нужна магическая сторона на стороне сервера. Вы используете php для бэкэнда? – codefreak

+0

Вы должны передать свой статус элемента с обработкой формы. –

+0

да я использую php – acr

ответ

2

Итак, проблема в том, что вы дважды задаете значение checked после отправки формы, в результате чего вы выбираете либо значение по умолчанию (из начальной формы состояние) или значение, которое было отправлено.

Для этого, чтобы работать правильно, вам нужно всегда использовать PHP для добавления значения checked к вашим радиоэлементов, как это:

<div id="button_set1"> 
<input onClick="show_seq_lunid();" type="radio" name="button" value="Yes" <?php if(!isset($_POST['button']) || (isset($_POST['button']) && $_POST['button'] == 'Yes')) echo ' checked="checked"'?> /><label>question1</label> 
<input onClick="show_list_lunid();" type="radio" name="button" value="No" <?php if(isset($_POST['button']) && $_POST['button'] == 'No') echo ' checked="checked"';?> /><label>answer1</label> 
</div> 

<div id="button_set2"> 
<input onClick="os_hpux();" type="radio" name="button1" value="Yes" <?php if(isset($_POST['button1']) && $_POST['button1'] == 'Yes') echo ' checked="checked"';?> /><label>question2</label> 
<input onClick="os_others();" type="radio" name="button1" value="No" <?php if(!isset($_POST['button1']) || (isset($_POST['button1']) && $_POST['button1'] == 'No')) echo ' checked="checked"';?> /><label>answer2</label> 
</div> 

Вот рабочий просмотр: http://codepad.viper-7.com/rbInpX

Кроме того, пожалуйста, обратите внимание, что вы используете встроенную нотацию JavaScript, которая, как правило, не рекомендуется сохранять динамический JS-контент отдельно и более управляемым ;-)

+0

Спасибо! Это сработало .. – acr

+0

рад помочь :) –

1

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

function createRadioOption($name, $value, $onClickMethodName, $labelText) { 

    $checked = ''; 
    if ((isset($_POST[$name]) && $_POST[$name] == $value)) { 
    $checked = ' checked="checked"'; 
    } 

    echo('<input onClick="'. $onClickMethodName .'();" type="radio" name="'. $name .'" value="'. $value .'"'. $checked .' /><label>'. $labelText .'</label>'); 
} 

<div id="button_set1"> 
<?php createRadioOption('button', 'Yes', 'show_seq_lunid', 'question1'); ?> 
<?php createRadioOption('button', 'No', 'show_list_lunid', 'question1'); ?> 
</div> 

<div id="button_set2"> 
<?php createRadioOption('button1', 'Yes', 'os_hpux', 'question2'); ?> 
<?php createRadioOption('button1', 'No', 'os_others', 'question2'); ?> 
</div> 
+0

Мне нравится этот подход. Молодец, сэр. –

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