Jquery 选择特定的选择选项时调用函数
我有两个选择菜单Jquery 选择特定的选择选项时调用函数,jquery,option,onchange,Jquery,Option,Onchange,我有两个选择菜单 居民的建筑编号和 他们的公寓号码 如果访问者选择任一菜单的最后一项(两者都具有相同的值,文本和类),我想调用一个函数,对他们隐藏表单并显示消息 该函数工作正常,因为它也通过一个独立链接调用,非居民可能会点击:(不住在这里?) 我不能让select的change()事件在选择最后一个选项时调用函数 以下是我的select代码的简要版本: <form id="document-request" name="document-request" class="clearfix"&
值,
文本
和类
),我想调用一个函数,对他们隐藏表单并显示消息
该函数工作正常,因为它也通过一个独立链接调用,非居民可能会点击:(不住在这里?)
我不能让select
的change()
事件在选择最后一个选项时调用函数
以下是我的select代码的简要版本:
<form id="document-request" name="document-request" class="clearfix">
<label>Your Full Name:
<input type="text" name="fullname" value="" class="span12"
required>
</label>
<label>Your Email:
<input type="text" name="email" value="" class="span12 email"
required>
</label>
<label for="building">Your Bldg & Apt#:</label>
<select name="building" class="span2" required>
<optgroup label="Building">
<option value="" name="building">--</option>
<option value="1" name="building">1</option>
<option value="2" name="building">2</option>
<option value="3" name="building">3</option>
<option value="4" name="building">4</option>
<option value="5" name="building">5</option>
<option value="6" name="building">6</option>
<option value="7" name="building">7</option>
</optgroup>
<option value="nonresident" name="building" class="dontlivehere">I Don’t Live Here</option>
</select>
我还试图通过对值
以及类
进行操作来实现这一点我真的不需要那个
dontlivehere
类,它只是我试图找到解决方案的一部分
可以找到正在进行的示例页面,该行不应该是:
if ((theValue).contains('Live Here')) {
说:
这句话是不是应该:
if ((theValue).contains('Live Here')) {
说:
.child()
不是有效的jQuery函数,请尝试.find()
我可能会用这样的东西:
if ($(this).find('option:selected').val() === 'nonresident') {
residenceAlert();
}
.child()
不是有效的jQuery函数,请尝试.find()
我可能会用这样的东西:
if ($(this).find('option:selected').val() === 'nonresident') {
residenceAlert();
}
这对我很有用:
HTML:
<select id="building" name="building" class="span2" required>
<optgroup label="Building">
<option value="" name="building">--</option>
<option value="1" name="building">1</option>
<option value="2" name="building">2</option>
<option value="3" name="building">3</option>
<option value="4" name="building">4</option>
<option value="5" name="building">5</option>
<option value="6" name="building">6</option>
<option value="7" name="building">7</option>
</optgroup>
<option value="nonresident" name="building" class="dontlivehere">I Don’t Live Here</option>
</select>
这对我很有用:
HTML:
<select id="building" name="building" class="span2" required>
<optgroup label="Building">
<option value="" name="building">--</option>
<option value="1" name="building">1</option>
<option value="2" name="building">2</option>
<option value="3" name="building">3</option>
<option value="4" name="building">4</option>
<option value="5" name="building">5</option>
<option value="6" name="building">6</option>
<option value="7" name="building">7</option>
</optgroup>
<option value="nonresident" name="building" class="dontlivehere">I Don’t Live Here</option>
</select>
2个问题:
1) 子方法
2) 包含方法
var theValue = $(this).find('option:selected').text();
if( theValue.indexOf('Dont Live Here') >= 0){
residenceAlert()
}
2个问题:
1) 子方法
2) 包含方法
var theValue = $(this).find('option:selected').text();
if( theValue.indexOf('Dont Live Here') >= 0){
residenceAlert()
}
浏览器调试器控制台将显示以下错误:
Uncaught TypeError: Object [object Object] has no method 'child'
child()
不是jQuery方法
将其更改为例如
将child()
替换为find()
后,根据浏览器的不同,可能出现的下一个错误是:
Uncaught TypeError: Object has no method 'contains'
只有FireFox才支持,改用可能更好,除非您不需要支持任何其他浏览器
您的完整代码可能类似于:
$('select').change(function () {
var theValue = $(this).find('option:selected').text();
if (theValue.indexOf('Live Here')) {
residenceAlert();
}
});
-使用
.find()
和indexOf()
浏览器调试器控制台将显示以下错误:
Uncaught TypeError: Object [object Object] has no method 'child'
child()
不是jQuery方法
将其更改为例如
将child()
替换为find()
后,根据浏览器的不同,可能出现的下一个错误是:
Uncaught TypeError: Object has no method 'contains'
只有FireFox才支持,改用可能更好,除非您不需要支持任何其他浏览器
您的完整代码可能类似于:
$('select').change(function () {
var theValue = $(this).find('option:selected').text();
if (theValue.indexOf('Live Here')) {
residenceAlert();
}
});
-使用
.find()
和indexOf()
您是如何解决
对象没有方法“包含”的问题的
?您链接的小提琴中的代码无效。它甚至没有引用jQuery。默认情况下,请在Chrome和IE中的大多数时间使用浏览器开发人员控制台(F12)来检查使用代码时的错误消息。您是对的,但是使用链接Jquery(在左面板中选择)它可以工作。我用firebug检查错误。我知道了,你在用FireFox。除了FireFox之外,其他浏览器都不支持它,这就是为什么它适用于您。您是如何解决对象没有方法“包含”的问题的?
?您链接的小提琴中的代码无效。它甚至没有引用jQuery。默认情况下,请在Chrome和IE中的大多数时间使用浏览器开发人员控制台(F12)来检查使用代码时的错误消息。您是对的,但是使用链接Jquery(在左面板中选择)它可以工作。我用firebug检查错误。我知道了,你在用FireFox。除了FireFox,其他浏览器都不支持,这就是为什么它适合你。事实上我说得太快了。无论我从菜单中选择什么,此代码都会触发该函数@生锈牛仔裤的回答起了作用。@dashard:不用担心。使用您提供的示例HTML并修复现有代码,代码的工作方式与演示中所示的一样。当然,如果这不是你真正需要的,那就不同了。最重要的是,您已经对它进行了排序,很高兴您这样做了:)而且indexOf
不是jQuery,而是标准JavaScript,返回一个整数,表示在value
字符串中找到指定的Live Here
值的位置。如果没有找到任何东西,则返回-1。实际上,我说得太快了。无论我从菜单中选择什么,此代码都会触发该函数@生锈牛仔裤的回答起了作用。@dashard:不用担心。使用您提供的示例HTML并修复现有代码,代码的工作方式与演示中所示的一样。当然,如果这不是你真正需要的,那就不同了。最重要的是,您已经对它进行了排序,很高兴您这样做了:)而且indexOf
不是jQuery,而是标准JavaScript,返回一个整数,表示在value
字符串中找到指定的Live Here
值的位置。如果未找到任何内容,则返回-1。在接受上一个答案时过早发言。对val()的测试(这是我最初开始编写代码但无法开始工作的地方)成功了。现在只选择“我不住在这里。”触发函数,一切正常。现在进入下一个问题。。。谢谢他过早地接受了先前的回答。对val()的测试(这是我最初开始编写代码但无法开始工作的地方)成功了。现在只选择“我不住在这里。”触发函数,一切正常。现在进入下一个问题。。。谢谢