我有2个下拉列表 -
1)客户ID的第一个下拉列表
2)客户名称的第二个下拉列表
我想要的是当用户选择客户端ID时,在另一个下拉客户端名称中应该选择具有所选ID的人员。
第二件事我想要如果用户选择客户名称,那么在客户端ID下拉列表中应该选择客户端的客户端ID
到目前为止我做了什么 -
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='subjects' type='text' value='1'>
<input class='subjects' type='text' value='2'>
<input class='subjects' type='text' value='3'>
Jquery -
<select class="form-control" id="client_id">
<?php
while($c_id=mysql_fetch_array($client_id))
{
echo "<option>".$c_id['ID']."</option>";
}
?>
</select>
<select class="form-control" id="client_name">
<?php
while($c_name=mysql_fetch_array($client_name))
{
echo "<option value='".$c_name['ID']."'>".$c_name['display_name']."</option>";
}
?>
</select>
请帮帮我 感谢。
答案 0 :(得分:2)
您需要以下代码:
$(function() {
$('#client_id').change(function(){
id = $( "#client_id option:selected" ).text();
$("#client_name > option").each(function() {
name = this.text;
idFromName = name.replace(/(^\d+)(.+$)/i,'$1');
if (id == idFromName){
$('#client_name').val(name);
}
});
});
$('#client_name').change(function(){
name = $( "#client_name option:selected" ).text();
idFromName = name.replace(/(^\d+)(.+$)/i,'$1');
$("#client_id > option").each(function() {
id = this.text;
if (id == idFromName){
$('#client_id').val(idFromName);
}
});
});
});
在上面的代码中,当更改clinet_id
下拉列表时,所选选项的ID保存在id
变量中。然后它循环遍历另一个下拉列表(client_name
)的选项,对于每个选项,选项的文本都保存在变量name
中。然后使用正则表达式(使用this),只有文本中的id保存在idFromName
变量中。如果id
和idFromName
相等,则会将client_name
下拉菜单更改为当前选择。使用相同的逻辑,当client_name
下拉列表发生更改时也会发生这种情况。
您可以在此JSFiddle。
中对其进行测试来源:
<强>更新强>
以下是一个完整的工作示例:
<select id="client_id">
<option>125</option>
<option>53</option>
<option>7</option>
</select>
<select id="client_name">
<option>125>asd</option>
<option>53>rty</option>
<option>7>ruu</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#client_id').change(function(){
id = $( "#client_id option:selected" ).text();
$("#client_name > option").each(function() {
name = this.text;
idFromName = name.replace(/(^\d+)(.+$)/i,'$1');
if (id == idFromName){
$('#client_name').val(name);
}
});
});
$('#client_name').change(function(){
name = $( "#client_name option:selected" ).text();
idFromName = name.replace(/(^\d+)(.+$)/i,'$1');
$("#client_id > option").each(function() {
id = this.text;
if (id == idFromName){
$('#client_id').val(idFromName);
}
});
});
});
</script>
复制并粘贴此内容并对您的ID和名称进行调整。