我有多个选择类型输入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。感谢
答案 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 所以代码片段是:
$(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;
答案 1 :(得分:1)
超级简单:
</script>
$(document).on('change','select[id$='item']', function(event){
var id = this.id;
});
</script>
然后使用id
用于您需要的任何目的。