0

假设我们有一个 yui3 表单:

YUI().use("gallery-form", function (Y) {
var checkbox = new Y.CheckboxField({
    name : "myCheckbox",
    value : "check",
    label : "Test Checkbox"
});

var f = new Y.Form({
    boundingBox: '#form',
    action : 'test.php',
    method : 'post',
    children : [
        checkbox ,
        {name : 'submitBtn', type : 'SubmitButton', value : 'Submit'}
    ]
});

f.render();
});

即表单有很多复选框;我希望此表单上的每个复选框都onchange="fn(this)".
这是我需要的一个小例子。

注意checkbox在第二行不应该被修改。我正在寻找类似的东西:

form.all('input type=checkbox').on('change', fn(checkbox));

_

// where fn is:
function fn(el){ console.log(el.checked); }        

PS
提前致谢;

4

1 回答 1

1

这个有点怪怪的。我认为预期的方法是执行form.on('*:change', fn)和过滤事件传播,但我找不到避免重复调用回调的方法。

因此,您可以求助于表单的changeUI 事件并执行以下操作:

form.on('change', function (e) {
  var checkbox = e.domEvent.target;
  console.log(checkbox.get('checked'));
});
于 2012-06-30T15:05:37.013 回答