2016-08-15 186 views
0

我有以下幾點:選擇在更改事件

var deliveryform = ('form[id$="shipping_method"]'); 

$('body').on('change', (deliveryform "input[type=radio]"), {}, function(event) { 
    console.log('you changed the radio'); 
}); 

但我的選擇不工作 - 我需要改變這裏的東西嗎?

回答

0

您需要連接字符串選擇器。儘管您提供了第三個參數,因爲您根本不想傳遞任何數據,所以它根本不是必需的,因此爲{}

var deliveryform = 'form[id$="shipping_method"]'; 

$('body').on('change', deliveryform + " input[type=radio]", function(event) { 
    //     -----------^^^^^^^---------------^^^^^^----- 
    console.log('you changed the radio'); 
}); 

如果這些最初加載那麼就沒有必要的event delegation都只是處理程序直接綁定到的元素。

$('form[id$="shipping_method"] input[type=radio]').change(function(event) { 
    console.log('you changed the radio'); 
}); 

如果表單輸入動態添加然後替換body與形式選擇器。

$('form[id$="shipping_method"]').on('change', "input[type=radio]", function(event) { 
    console.log('you changed the radio'); 
}); 
0

你的語法不太對。使用deliveryform作爲主選擇器。試試這個:

var $deliveryform = $('form[id$="shipping_method"]');  
$deliveryform.on('change', "input[type=radio]", function(event) { 
    console.log('you changed the radio'); 
}); 
0

您需要使用這樣的:

var deliveryform = $('form[id$="shipping_method"]'); // was missing dollor sign 
deliveryform.on('change', "input[type=radio]", {}, function(event) { 
    console.log('you changed the radio'); 
}); 

替代回答你的問題:

var deliveryform = 'form[id$="shipping_method"]'; // removed() 

$('body').on('change', deliveryform + " input[type=radio]", {}, function(event) { 
//.     ^^------------------^^ 
    console.log('you changed the radio'); 
}); 
0
  1. 你有你的form選擇錯過$
  2. 您已有form對象,那麼爲什麼要綁定change事件body?只需使用表格!

var deliveryform = $('form[id$="shipping_method"]'); 

deliveryform.on('change', "input[type=radio]", function() { 
    console.log('you changed the radio'); 
});