繁体   English   中英

在表格中显示下拉菜单中的选择

[英]showing selections from drop downs in a table

我在下方选择按钮设置了下拉菜单。 我要尝试做的是,一旦用户浏览了三个下拉菜单并按select键,所选的选项就会显示在其分配类别的对应表中

HTML:

<form method="POST">
<select  name='first' id='first'>
    <option selected="selected" value="nothing">choose</option>   
    <option value='opt_a'>opt a</option>
    <option value='opt_b'>opt b</option>
</select>
<select name='sec' id='sec'>
</select>
<select name='third' id='third'>
</select>
<br />
<br />
<button id="select_btn" type="select" name="select">select</button>
<br />
<br />
<div id="result">
<table>
    <tr>
       <th>category</td>
       <th>choice</td>
    </tr>
    <tr>    
       <td>choice 1</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 2</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 3</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 4</td>
       <td></td>
    </tr>
    <tr>    
       <td>choice 5</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 6</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 7</td>
       <td></td>
    </tr>
    <tr>
       <td>choice 8</td>
       <td></td>
    </tr>
</table>
</div>
</form>

JS:

data = {
opt_a: ['choose_1','choose_2','choose_3','choose_4'],
opt_b: ['choose_5','choose_6','choose_7','choose_8'],
choose_1: ['yes','no','unsure','still unsure'],
choose_2: ['yes','no','unsure','still unsure'],
choose_3: ['yes','no','unsure','still unsure'],
choose_4: ['yes','no','unsure','still unsure'],
choose_5: ['a','b','avg','unclear'],
choose_6: ['a','b','avg','unclear'],
choose_7: ['a','b','avg','unclear'],
choose_8: ['a','b','avg','unclear']
}

$('#first').change(function(){
var firstopts = ''
$.each(data[$(this).val()],function(i,v){
    firstopts += "<option value='"+v+"'>"+v+"</option>"
}) 
$('#sec').html(firstopts)
})


$('#sec').change(function(){
var secopts = ''
$.each(data[$(this).val()],function(i,v){
    secopts += "<option value='"+v+"'>"+v+"</option>"
}) 
$('#third').html(secopts)
})

CSS:

select{width:150px;}

#result{width:450px; border:2px solid #234323;}

td{width:225px; text-align:center}

th{background:#656454; color:#eee; text-align:center}

预先感谢您的任何帮助。

由于您的data键称为choose_N并且列的文本choice N ,因此您可以通过拆分值并获取最后一部分来进行匹配:

var number1 = 'choose_1'.split('_')[1];
var number2 = 'choice 1'.split(' ')[1];
return number1 == number2; // corresponding choice

如果需要更精确的信息,也可以用相应的值注释HTML:

<tr data-choice="choose_1">
   <td>choice 1</td>
   <td></td>
</tr>

$(myselector).data("choice"); // Will return "choose_1"

现在,所有你需要做的是选择正确的行(对应于当前选定的值的一个#sec )和第二列设置为当前选择的值#third 您可以在选择按钮的click回调中执行此操作,但是更好的选择是在$('#third').change直接进行$('#third').change (这样,只需再按一次按钮即可保存用户):

$('#third').change(function() {
    $('table tr').filter(function() {                                // Filters the rows, by:
        var number1 = $('#sec').val().split('_')[1];                 // comparing the value at #sec
        var number2 = $(this).find('td:eq(0)').text().split(' ')[1]; // with the text of the first column.
        return number1 == number2;
    }).find('td:eq(1)').text($(this).val()); // Updates the second column.
});

jsFiddle的工作示例 唯一需要注意的是,如果用户要选择第一个选项(已选择的一个),则必须更改它并再次更改以触发事件(在这种意义上, select按钮更干净)。

如果您仍然只希望在按下按钮时执行此操作,只需将$('#third').change(...)替换$('#select_btn').click(...)编辑:$(this)$('#third') )。 您可能还必须使用event.preventDefault ,因此不提交表单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM