我有一个HTML表单,我想根据在初始选项输入中选择的内容来显示输入。
选项是通过PHP打印的,因为它从PHP数组中获取一些信息。
<?php
foreach ($type as $line_name => $line_id) {
print "<option value='$line_id'>$line_name</option>";
}
?>
因此,为了便于论证,选项值将打印为"123"。
然后我就有了要隐藏的字段的HTML。php只是用数据库中的内容自动填充数据。
<tr><td>First Name:</td><td><input type="text" size="30" maxlength="30" name="contact_firstname" id="first_name" value="<?php print $customer->cust_firstname; ?>"><br/></td></tr>
我的Javascript如下:
$(document).ready(function () {
$('#efm select[name="type"]').change(function () {
if ($('#efm select[name="type"]').val() == '123') {
$('#first_name').hide();
} else if ($('#contact select[name="type"]').id() == 'EFM-2-PAIR'){
$('#').show();
} else if ($('#contact select[name="type"]').id() == 'EFM-4-PAIR'){
} else {
$('#').hide();
}
});
});
这目前不起作用,当从选择中选择"123"时,字段"first_name"仍然在屏幕上,我有一种感觉,这是因为它是从PHP中提取的,所以很难阅读,但我不是专家。
这里的任何帮助都将是惊人的
试试这个。。。
$('#efm select[name="type"]').change(function () {
if ($(this).val() == '123') {
$('#first_name').hide();
}else
if($('#contact select[name="type"]').attr('id') == 'EFM-2-PAIR'){
// this won't work... $('#').show();
// the hash tag is the begining of an id selector..
// $('#some-id').show(); will work better!
}else
if ($('#contact select[name="type"]').attr('id') == 'EFM-4-PAIR'){
} else {
// won't work... $('#').hide();
}
});
这一切都是假设在id为"contact"的包含元素中有一个名为"type"的select元素。。实际上,你不确定你试图用这些条件实现什么,也许你是想检查这些值?
if($('#contact select[name="type"]').val() == 'EFM-4-PIAR') ...
否则,除非您在某个地方动态更改id,否则它们将始终为true。。
如果您只是从同一个select中检查其他选项值,则使用。。。
...
}else
if($(this).val() == 'EFM-2-PAIR'){
//do something
}else
if($(this).val() == 'EFM-4-PAIR'){
//do something else..
}else{
//do something when none of the above conditions are met..
}
FYI$(this(将引用您在处理程序内为其提供侦听器的元素。。在这种情况下$('#efm select[name="type"]'(。。。将为您节省一些键入:(
尝试提醒select的值。
alert($('#efm-select[name="type"]'(.val(((;//你也可以在那里使用$(this(.val((,这将减少的代码大小
其他部分保持空白。
$('#efm select[name="type"]').change(function () {
alert($(this).val());
alert('is equal= '+$(this).val() == '123');
if ($(this).val() == '123') {
$('#first_name').hide();
} else {
alert('else part');
}
});
jQuery(function ($) {
$('#type').on('change', function(e) {
alert($(this).val())
if ($(this).val() == '190452') { // Bath Business Park Ethernet Rental
$('#first_name').hide();
} else if($(this).val() == '105561'){ //EFM-2-PAIR
$('#surname').hide();
} else if($(this).val() == '105581'){ //EFM-4-PAIR
$('#company_name').hide();
} else if($(this).val() == '105601'){ // EFM National Ethernet Rental
$('#company_name').hide();
}
});
})
这是修复问题的代码,因为值类型实际上是一个包含2条信息的数组,读取它时出现问题