首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery -确定输入元素是文本框还是选择列表

jQuery -确定输入元素是文本框还是选择列表
EN

Stack Overflow用户
提问于 2011-02-25 01:36:58
回答 2查看 117.6K关注 0票数 95

如何确定jQuery中的:input过滤器返回的元素是文本框还是选择列表?

我希望每一个都有不同的行为(文本框返回文本值,select返回键和文本)

示例设置:

代码语言:javascript
复制
<div id="InputBody">
<div class="box">
    <span id="StartDate">
        <input type="text" id="control1">
    </span>
    <span id="Result">
        <input type="text" id="control2">
    </span>
    <span id="SelectList">
        <select>
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
        </select>
    </span>
</div>
<div class="box">
    <span id="StartDate">
        <input type="text" id="control1">
    </span>
    <span id="Result">
        <input type="text" id="control2">
    </span>
    <span id="SelectList">
        <select>
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
        </select>
    </span>
</div>

然后是脚本:

代码语言:javascript
复制
$('#InputBody')
    // find all div containers with class = "box"
    .find('.box')
    .each(function () {
        console.log("child: " + this.id);

        // find all spans within the div who have an id attribute set (represents controls we want to capture)
        $(this).find('span[id]')
        .each(function () {
            console.log("span: " + this.id);

            var ctrl = $(this).find(':input:visible:first');

            console.log(this.id + " = " + ctrl.val());
            console.log(this.id + " SelectedText = " + ctrl.find(':selected').text());

        });
EN

回答 2

Stack Overflow用户

发布于 2013-06-16 18:55:11

或者,您可以使用.prop检索DOM属性

下面是选择框的示例代码

代码语言:javascript
复制
if( ctrl.prop('type') == 'select-one' ) { // for single select }

if( ctrl.prop('type') == 'select-multiple' ) { // for multi select }

对于文本框

代码语言:javascript
复制
  if( ctrl.prop('type') == 'text' ) { // for text box }
票数 30
EN

Stack Overflow用户

发布于 2018-06-17 23:35:55

如果只想检查类型,可以使用jQuery的.is()函数,

就像我在下面使用的例子一样,

代码语言:javascript
复制
if($("#id").is("select")) {
 alert('Select'); 
else if($("#id").is("input")) {
 alert("input");
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5108337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档