#php #wordpress #forms
#php #wordpress #формы
Вопрос:
Я создаю форму регистрации и создал скрытые поля, которые отображаются только в зависимости от выбранного значения. Проблема в том, что я не могу понять, как отображать поле на основе нескольких выбранных значений.
Например: допустим, у одного из вопросов есть выпадающее меню с возможными ответами A, B, C или D, я понимаю, как заставить скрытое поле отображаться, если выбран ОДИН из ответов, но не могу заставить его отображаться, если они выбирают A ИЛИ B.
Вот мой код, я надеюсь, он показывает, что я пытаюсь сделать:
$fields[] = new PMProRH_Field(
"ahpraregistration",
"text",
array(
"depends"=>array(array('id' => "regsitrationlevel", 'value' => "holdslimited"||"holdsprovisional")),
"label"=>"Please Provide Your AHPRA Registration Number",
'required' => true,
)
));
В этом случае я хочу, чтобы текстовое поле отображалось, если выбрано ‘holdslimited’ ИЛИ ‘holdsprovisional’, в настоящее время это будет работать, только если я использую одно значение. Какой формат мне нужно использовать? Как я могу это сделать? Спасибо!
Комментарии:
1.то, что у вас есть сейчас, похоже на условие
'value' => "holdslimited"||"holdsprovisional"
или'value'=>1
песочницу, потому что по крайней мере одна из строк соответствует действительности, результатом является1
условие. Вы можете проверить это с помощью'value' => 0||0
— которая возвращаетFalse
или пустую песочницу2. Что касается того, как это сделать, ну, я никогда не слышал об этой
PMProRH_Field
вещи, но есть замечание, мешающее вам делать это с помощью JavaScript (я буду использовать Jquery),if($('input[name="ahpraregistration"]).val() == 'holdslimited') //do something
Ответ №1:
Я не вижу никаких причин, по которым какой-нибудь простой jQuery не сработал бы.
(function($){
$(document).ready(function(){
function togglefield(){
if($('select[name="foo"]').val() == 'holdsprovisional'){
$('input[name="bar"]').css('display','');
}else{
$('input[name="bar"]').css('display','none');
}
}
$('select[name="foo"]').change(function(){
togglefield();
});
togglefield();
});
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<select name="foo" >
<option value="holdslimited" >holdslimited</option>
<option value="holdsprovisional" >holdsprovisional</option>
</select><br>
<input name="bar" />
Вопрос в том, чтобы расширить для меня, чтобы сделать больше, вы, очевидно, можете сделать JS лучше, это было просто для того, чтобы показать, что довольно легко скрыть или показать поле.