JQuery在函数中传递值?

时间:2017-10-23 16:25:48

标签: javascript jquery

我有javascript函数需要其中一个参数。这是一个例子:

function getBldg(filterNum){
    var bldg = $('#frm_bldg');

    $.ajax({
        type: 'POST',
        url: 'Application.cfc?method=getBuildings',
        data: {'filterNum':filterNum},
        dataType: 'json'
    }).done(function(obj){
        var numRecs = obj.RECORDCOUNT;

        if(obj.STATUS == 200){
            return true;
        }else{
            return false;
        }
    }).fail(function(jqXHR, textStatus, errorThrown){
        alert(errorThrown);
    });
};

以下是我如何调用此函数的示例:

$('#frm_block').on('change',getBldg);

所以我的问题是如何在getBldg函数中传递参数?

我知道在javascript中我可以这样:getBldg(this)如果函数是在内联元素中定义的。在我的例子中,我根据元素ID调用此函数。这是我的HTML示例:

<select name="frm_block" id=""frm_block">
  <option value="">Choose</option>
</select>

如果有人可以提供帮助,请告诉我。

2 个答案:

答案 0 :(得分:3)

$('#frm_block').on('change',function(){
  var filternum = $(this).val()
  getBldg(filternum)
});

答案 1 :(得分:1)

使用event.target

的其他方式

参考:https://api.jquery.com/event.target/

&#13;
&#13;
function getBldg(filterNum) {
   
   // This is nothig but event object
   // uncomment below to see its content
   // console.log(filterNum);
   
   // to access selected value, you have to use 
   // filterNum.target ....
 console.log( $(filterNum.target).val() );  
};


/*
since you are interested in  inline, so I am not using
$('#frm_block').on('change', function(){
      getBldg($(this).val());
});
*/

$('#frm_block').on('change', getBldg);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="frm_block" id="frm_block">
  <option value="">Choose</option>
  <option value="1">Choose-1</option>
  <option value="2">Choose-2</option>
</select>
&#13;
&#13;
&#13;