我有一个占位符值输入框,在页面加载时设置为display:none;
,因为它受jQuery控制,并显示何时占位符下拉框被选中为yes。PHP验证和隐藏的下拉框
我的问题是我对表单使用了Codeigniter验证,如果我在表单上有错误,页面重新加载占位符下拉框状态为yes,但占位符值输入框消失。
我最好打赌是创建一个callback_函数,基本上声明是否选择是显示输入框?
的jQuery:
$("#add_fields_placeholder").change(function()
{
if($(this).val() == "yes")
{
$('label[for="add_fields_placeholderValue"]').show();
$("#add_fields_placeholderValue").show();
}
else
{
$('label[for="add_fields_placeholderValue"]').hide();
$("#add_fields_placeholderValue").hide();
}
});
查看:
<label for="add_fields_placeholder">Placeholder: </label>
<select name="add_fields_placeholder" id="add_fields_placeholder">
<option value="">Please Select</option>
<option value="yes" <?php echo set_select('add_fields_placeholder','yes', (!empty($placeholderType) && $placeholderType == "yes" ? TRUE : FALSE));?>>Yes</option>
<option value="no" <?php echo set_select('add_fields_placeholder','no', (!empty($placeholderType) && $placeholderType == "no" ? TRUE : FALSE));?>>No</option>
</select>
<label for="add_fields_placeholderValue">Placeholder Text: </label>
<input type="text" name="add_fields_placeholderValue" id="add_fields_placeholderValue" value="<?php echo set_value('add_fields_placeholderValue'); ?>">
控制器验证:
$this->form_validation->set_rules('add_fields_placeholder', 'Placeholder', 'trim|required|xss_clean|callback_dropdown_check');
$this->form_validation->set_rules('add_fields_placeholderValue', 'Placeholder Text','trim|xss_clean');
我想你需要检查'dropdown'的实际状态,所以每次你的页面加载时,你都会检查状态并对其他字段进行必要的更改。我认为这个问题不是PHP相关的,因为没有PHP错误,所以如果我没有弄错,你可以改变标签吗? =) – Gerep 2012-08-15 00:20:25
你用javascript来显示隐藏字段?如果是这样,你只需要在页面加载时调用它;) – 2012-08-15 01:21:47
@SérgioMichels你能否给我提供一个例子,看起来我无法得到一个http://stackoverflow.com/questions/11961248/setting-an- onchange-event-when-the-browser-reloads我认为这是这种情况 – 2012-08-15 01:59:42