使用' id名称以'结尾在on()中用于动态绑定

时间:2016-08-02 11:35:11

标签: javascript jquery html

我有多个选择类型输入HTML字段在我的表单中动态生成。我想动态地将item字段绑定到change事件。

项目字段如下所示:

生成的item字段的id就像这样

  • id="id_form-1-item"
  • id="id_form-2-item"
  • <script> $(document).on('change','select[id$='item']', function(event){ alert(event.target.id); }); </script>
  • ...

我试过这个,但它没有用。

function home()
{

    if(!isset($this->params['requested']) || $this->params['requested'] != true)
    {
        $this->actionId = 'home';
    }

    $this->viewFile = null;

    if($this->params['isAjax'] &&  isset($_POST['selectedlocation'])) 
    {

            echo "erreerreer";
            CakeLog::write('error', $this->request->data('selectedlocation));
            echo $selectloc= $_POST['selectedlocation'];
            $this->set('selectloc',$selectloc); 

    }

}

我想要触发事件的元素的id。感谢

2 个答案:

答案 0 :(得分:3)

你的函数中有一个拼写错误:char escape。 你需要改变:

$(document).on('change','select[id$='item']', function(event){

为:

$(document).on('change','select[id$="item"]', function(event){

另一种逃避char的方法是:

$(document).on('change','select[id$=\'item\']', function(event){

有关详细信息,请查看Escape notation in string 所以代码片段是:

&#13;
&#13;
$(function () {
  $(document).on('change','select[id$="item"]', function(event){
    console.log("event.target.id=" + event.target.id + " or this.id=" + this.id);
  });
});
&#13;
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

<select id="id_form-0-item">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
<select id="id_form-1-item">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
<select id="id_form-2-item">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

超级简单:

</script>
    $(document).on('change','select[id$='item']', function(event){
        var id = this.id;
    });
</script>

然后使用id用于您需要的任何目的。