首页 > 解决方案 > 如何从“选择”标签中选择除隐藏值之外的值?

问题描述

我正在尝试从表单中选择所有值,但隐藏的值除外。但是使用它后的事件会从具有隐藏值input:not([type='hidden']),select,textarea的标签中选择所有值。select

按下提交按钮时调用的函数:

function getInfoSectionValues($objSection) {
    var objValue = {};
    $objSection.find(".info, .info-container").find("input:not([type='hidden']),select,textarea").each(function () {
        let strKey = ($(this).attr('data-apiname') !== undefined) ? $(this).attr("data-apiname") : $(this).attr("class");
        objValue[strKey] = $(this).val();
    });
    return objValue;
}



<select class="form-control origin" data-apiname= "Origin" id="originId" placeholder="Test1" required="required">
    <option value="" class="hidden">Test1</option>
    <repeating the values here passed from the server>
</select>

实际的 :

Form1: "Pharmacy"
Origin: "Choose Case Origin"
Priority: "Medium"
Status: "Open"
SubStatus: ""
SubStatusReason: ""
Subject: "

预期的 :

Form1: "Pharmacy"
Origin: ""
Priority: "Medium"
Status: "Open"
SubStatus: ""
SubStatusReason: ""
Subject: "

标签: javascriptjqueryselect

解决方案


要过滤掉<select>具有类选项的选项,请hidden使用:

.find("select:not(:has(.hidden)),textarea")

选择器input:not([type='hidden'])适用于<input>不是<input type="hidden">

由于没有提供 html 并且解释很弱......这是对该问题的最佳解释


推荐阅读