繁体   English   中英

jQuery在HTML输入中获取所选选项的文本字符串

[英]Jquery get text string of selected option in html input select

我有一个带有几个下拉菜单和几个文本字段的表单。 单击一个按钮,所有选择的选项和文本将显示在表格中。

我能够从这些输入项中获取值,但无法弄清楚如何获取文本字符串。 我尝试通过$(input).text和option:selected获取文本,但是它不起作用。

$(tr).insertBefore("#finalrow").append('<td class=row-'+ $(input).attr("id") + '>' + $(input).text() + '</td>');

 var myJson = { "platforms": [ { "name": "Main", "id": "main", "platform": [ { "name": "Platform", "id": "plat", "tasktype": [ { "name": "Promobox", "id": "promobox", "components": [ { "name": "Box 0", "id": "box0", "time": "20" } ] } ] } ] } ] }; $.each(myJson.platforms, function (index, value) { var platform_id; var tasktype_id; var component_id; var new_id; $("#workstream").append('<option rel="' + index + '" value="' + value.id + '">' + value.name + '</option>'); $("#workstream").change(function () { $("#platform, #tasktype").find("option:gt(0)").remove(); $("#platform").find("option:first").text("Loading..."); platform_id = $(this).find('option:selected').attr('rel'); $.each(myJson.platforms[platform_id].platform, function (index1, value1) { $("#platform").find("option:first").text("Select Platform"); $("#platform").append('<option rel="' + index1 + '" value="' + value1.id + '">' + value1.name + '</option>'); }); }); $("#platform").change(function () { $("#tasktype").find("option:gt(0)").remove(); $("#tasktype").find("option:first").text("Loading..."); tasktype_id = $(this).find('option:selected').attr('rel'); $.each(myJson.platforms[platform_id].platform[tasktype_id].tasktype, function (index2, value2) { $("#tasktype").find("option:first").text("Select Task type"); $("#tasktype").append('<option rel="' + index2 + '" value="' + value2.id + '">' + value2.name + '</option>'); }); }); $("#tasktype").change(function () { $("#component").find("option:gt(0)").remove(); $("#component").find("option:first").text("Loading..."); new_id = $(this).find('option:selected').attr('rel'); $.each(myJson.platforms[platform_id].platform[tasktype_id].tasktype[new_id].components, function (index2, value2) { $("#component").find("option:first").text("Select Component"); $("#component").append('<option rel="' + index2 + '" value="' + value2.id + '">' + value2.name + '</option>'); }); }); }); $(document).ready(function () { $('#calculate').click(function () { let tr = $("<tr/>").appendTo("#data tbody"); $('#calc input, #calc select').each( function (index) { var input = $(this); $(tr).insertBefore("#finalrow").append('<td class=row-'+ $(input).attr("id") + '>' + $(input).val() + '</td>'); }); const componentFactor = $(tr).children(".row-component").text(); const units = $(tr).children(".row-time").text(); const total = componentFactor*units; $("#calc")[0].reset(); $("#total").html(sumColumn(6)); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="formset"> <form id="calc"> <select id="workstream" name="workstream" class="form-control"> <option value="0">Select Workstream</option> </select> <select id="platform" name="platform" class="form-control"> <option value="0">Select Platform</option> </select> <select id="tasktype" name="tasktype" class="form-control"> <option value="0">Select Task type</option> </select> <select id="component" name="component" class="form-control"> <option value="0">Select Component</option> </select> <input name="units" id="units" type="number" min="0" placeholder="Input Units" class="form-control"/> <input name="time" id="time" type="number" min="0" placeholder="Actual Time" class="form-control"/> <br /> </form> </div> <div class="btnArea"> <button id="calculate" >Add</button> </div> <div style="clear:both"></div> </div> <div class="resultsArea results"> <h2>Results</h2> <table id="data"> <thead> <tr> <th>Workstream</th> <th>Platform</th> <th>Task Type</th> <th>Component</th> <th>Units</th> <th>Time</th> </tr> <tr id="finalrow"> <td></td> <td></td> <td></td> <td></td> <td></td> <td id="total"></td> </tr> </thead> <tbody></tbody> </table> </div> 

检查该字段是否具有选定的选项。 如果是,则获取它的text() ,否则获取表单字段的值:

var input = $(this);
var textVal = $(input).find('option:selected').text();
if (!textVal) {
    textVal = $(input).text();
}
$(tr).insertBefore("#finalrow").append('<td class=row-'+ $(input).attr("id") + '>' + textVal + '</td>');

暂无
暂无

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

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