Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择特定的选择选项时调用函数_Jquery_Option_Onchange - Fatal编程技术网

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 &amp; 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()的测试(这是我最初开始编写代码但无法开始工作的地方)成功了。现在只选择“我不住在这里。”触发函数,一切正常。现在进入下一个问题。。。谢谢