这两种方法都将清除任何先前的输入状态,无论您的收音机名称或 id 是什么,只需检查输入的 type 属性即可。这样他们都只使用一个事件处理程序来清除对方,而不清除无线电值!
方法一:.focus()
var inputs = $("#angleform fieldset input");
// bind focus on all inputs
inputs.focus(function () {
// loop through all
for (var i = 0; i < inputs.length; i += 1) {
var el = inputs.eq(i);
// ignore focused element
if (inputs[i] !== this) {
// if radio type is the same => remove state
// all other inputs can have empty value
if (el.prop("type") === "radio") {
el.prop("checked", false);
} else {
el.val("");
}
}
}
});
演示:http: //jsfiddle.net/tive/uM3tk/
方法二:.blur()
var inputs = $("#angleform input"),
myChoice;
// bind .blur() on inputs
inputs.blur(function () {
myChoice = $(this);
// if input type is radio
if (myChoice.prop("type") === "radio") {
myChoice.prop("checked", false);
} else {
myChoice.val("");
}
});
演示:http: //jsfiddle.net/tive/LUP4b/