javascript - 为什么Bootsrtap中用$(".form-control").val()不能获取input的值?
高洛峰
高洛峰 2017-04-11 10:59:50
[JavaScript讨论组]

为什么Bootsrtap中用$(".form-control").val()不能获取class为form-control的input的值?
为什么会这样?
我给相应的input加个其它的class,用其它的class来获取值得就完全没有问题。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(8)
天蓬老师

你应该先运行一下$(".form-control").length,看看有没有找到,找到了几个

阿神

那说明你加了form-control样式的标签不止一个吧

PHP中文网

最好加个id吧,bootatrap里的class会用在很多标签上

巴扎黑

form-control是框架里带的,最好自己定义一个id

PHPz

bootstrap里很多都要用到这个类的吧,我觉得你应该是可以取到应用了这个类的元素的,可以调试下看看啊

PHPz

用其他class作为选择器
form-control作为bootstrap里自带的 建议不要采用其作为选择器的标签

PHPz

$(".form-control").val() 这是 jQuery 的方法,其实跟 Bootstrap 没关系。

$.fn.val 方法用于获取查找到的第一个元素的值,如果是 select,checkbox,radio 则返回选中的值(可以是多个)

也就是说,您得看看 $(".form-control") 都是对应哪些元素,什么类型,第一个是哪个。如果想测试,可以在 chrome 或 firefox 或 ie 下按 f12(OSX 里是 Option+Command+i) 打开开发工具,切换到控制台(Console)下,输入 $(".form-control") 或 $(".form-control").val() 后回车查看。如果有报错看报什么错。

PHPz

页面上可能有很多 class为 form-control 的 元素 所以你直接取值不能取出来

你可以现尝试

alert($("input.form-control").size())

如果弹出的数字大于1 那就证明我的猜想是对的。下面是详细的解决方法。

你可以尝试这样 缩小一下范围 只查找 input的class为form-control的元素
代码如下:

$("input.form-control").val()

或者获取指定第几个的class为 form-control 的val
代码如下:

//eq(0) 代表第一个class为`form-control`的元素  你可以自己填写需要的
$("input.form-control").eq(0).val()

当然最好还是 给要获取的元素 单独一个class
这样更加好区分,代码更加清晰

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号