首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jquery插件中传递下拉选择值

问如何在jquery插件中传递下拉选择值
EN

Stack Overflow用户
提问于 2014-11-04 07:26:05
回答 4查看 1.8K关注 0票数 0

我需要将下拉选择的值传递给jQuery插件。

HTML:

代码语言:javascript
复制
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.requiredplugin.js"></script>
  </head>
  <body>
    <select name="Type" id="sid">
      <option value="value1">value1</option>
      <option value="value2" selected>value2</option>
      <option value="value3">value3</option>
    </select>
    <textarea name="source" id="src1" cols="150" rows="20"></textarea>
    <script type="text/javascript">
      $("#src1").keyup(function(e) {
        $(this).pluginmethod(e.keycode);
      });
    </script>
  </body>
</html>

jquery.requiredplugin.js:

代码语言:javascript
复制
(function ($) {
  // jQuery plugin definition
  $.fn.pluginmethod = function (keycode) {
    return this.each(function () {
      var $str = $('#src1');
      var $soml = $('#sid');
      var somlan = $soml.val(); //if I assign  var somlan with some static value my code works
      var som = $str.val();
      /* My code goes here where I use both var som and  var somlan*/
    });
  };
})(jQuery);

我能够得到$('#src1')的值,如果用一些静态值分配var somlan,那么我的代码就能工作了。但是,如果我想使用下拉选择的值(其id为"sid" )并以var $soml = $('#sid');的形式检索插件中的值,那么我的代码就无法工作。

如何在插件中使用下拉选择的值?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-04 07:32:23

尝试这样做:用两个参数而不是一个参数修改插件方法,并将选择框的值作为第二个参数传递。

代码语言:javascript
复制
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.requiredplugin.js"></script>
</head>
<body>
<select name="Type" id="sid">

                <option value="value1">value1</option>
                <option value="value2" selected>value2</option>
                <option value="value3">value3</option>
                </select>
<textarea name="source" id="src1" cols="150" rows="20"></textarea>
<script type="text/javascript">
$("#src1").keyup(function(e) {
$(this).pluginmethod(e.keycode,$('#sid').val());
});
</script>
</body>
</html>

插件

代码语言:javascript
复制
(function($) {

// jQuery plugin definition

$.fn.pluginmethod = function(keycode, selectVal) {

       return this.each(function() {
       var $str = $('#src1'); 
       //var $soml = $('#sid'); 
       var somlan= selectVal; 
       var som= $str.val();

       /* My code goes here where I use both var som and  var somlan*/

     });
  };

})(jQuery);
票数 2
EN

Stack Overflow用户

发布于 2014-11-04 07:33:49

在你的jquery.requiredplugin.js里这样做吧

代码语言:javascript
复制
(function($) {

$.fn.pluginmethod = function(keycode) {

       return this.each(function() {
       var $str = $('#src1'); 
       var $soml = $('#sid option:selected').text(); 
       var somlan= $soml.val();
       var som= $str.val();

       /* Your code goes here where you use both var som and  var somlan*/

     });
  };

})(jQuery);

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-11-04 07:34:19

你应该试着:

$("#sid option:selected").text();

或

$("#sid option").is("selected").text()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26729733

复制
相关文章

相似问题

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