如何获得嵌入在选择选项中的输入文本的值?

时间:2019-03-28 03:34:03

标签: javascript jquery html

在我的html模板中, var mongoose = require('mongoose'); var Schema = mongoose.Schema; var subConfigsSchema = new Schema({ alias: String, value: String, position: Number }, {_id: false}); var configsSchema = new Schema({ bfq: [subConfigsSchema], qpa: [subConfigsSchema], fmb: [subConfigsSchema], cz: [subConfigsSchema] }, {_id: false}); var instrumentSchema = new Schema({ _id: { type: Schema.Types.ObjectId, required: true, auto: true }, configs: { type: configsSchema, required: true } }, { strict: false, versionKey: false }); module.exports = mongoose.model('Instrument', instrumentSchema) 标记中有一组选项。一个特定的选项允许您在输入文本字段中输入自定义类别名称。

现在,一旦单击“提交”按钮,就无法在输入字段中获取值(如果在其中输入了值)。

以下是HTML Instrument.find({_id: '5c9b3747407939296c5af1da'}, function(err, data) { if (err) throw err; instrument = data[0]; console.log(instrument); console.log(instrument._id); console.log(instrument.inpname); console.log(Instrument['inpname']); }); <select>字段:

<select>

<input>中,我只想在屏幕上显示选定/键入的类别值作为警报消息。

 {% for index in list %}

   <select name="browser" id="select_id{{index}}" onchange="if(this.options[this.selectedIndex].value=='customOption'){toggleField(this,this.nextSibling); this.selectedIndex='0';}">

     <option value="0">---- select ----</option>
     <option value="customOption">[enter your own custom category]</option>
     <option value="Chrome">Chrome</option>
     <option value="Firefox">Firefox</option>
     <option value="Internet Explorer">Internet Explorer</option>

     <input name="browser" id="input_id{{index}}" type="text" disabled="disabled" onblur="if(this.value==''){toggleField(this,this.previousSibling);}">

    </select>

    <!-- SUBMIT BUTTON TO INVOKE add_category() javascript method -->

    <button type="button" onclick="add_category('select_id{{index}}', 'input_id{{index}}');">SUBMIT</button>

 {% endfor %}                                   

但是,输入或所选类别值中没有返回任何值。

4 个答案:

答案 0 :(得分:2)

您可以使用以下代码段检索select的值,这将对您有所帮助。

var mySelect = $('select[name=browser');
var conceptName = mySelect.find(":selected").text();
console.log(conceptName)

可执行代码段位于下面的代码Pen URL中 https://codepen.io/redhatvicky/pen/RdzEGW

答案 1 :(得分:0)

function add_category(select_id, input_id){
        if($("#"+select_id+"").val()=='0')
        {
            alert("Please select a valid category");
        }
        else if($("#"+select_id+"").val()=='customOption')
        {
            var i = $("#"+input_id+"").val();
            alert("INPUT CATEGORY: ,"+i);
        }
        else
        {
            var s = $("#"+select_id+"").val();
            alert("SELECTED CATEGORY: ,"+ s);        
        }
    }



    });

答案 2 :(得分:0)

这甚至不是有效的html,Chrome会将输入呈现在选择范围之外。

将输入放置在选择之外。

<select>
  <option>Select</option>
  <input type="text">
</select>

答案 3 :(得分:0)

如Andrian所说,select内的

输入不是有效的html。 您必须创建一个带有内部输入的自定义下拉列表,而不是使用默认的select而是使用ul,li这样的元素。