我在检查收音机时已经完成了某些工作,但是,现在我想在页面加载时发生同样的事情,希望不会复制大部分代码。
我为页面加载添加它的原因是因为我正在创建一个编辑/更新页面。第一页用于将表单数据保存到mysql数据库,第二页从数据库中获取值,并在保存时显示表单,一个人可以进行更改并将其保存回数据库。
所以我点击了这个。对于其他无线电值,它不仅仅是这个,而是不想粘贴太多。这只是一个例子:
$("input[name='typeofmailerradio']").click(function() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
});
所以我做了一个测试并将所有这些放入页面代码中:
$("input[name='typeofmailerradio']:checked").val(function() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
});
首先,这就是我复制大量代码的意思,其次它并没有真正起作用。它适用于页面加载,但点击代码部分不再需要工作了。
我想做的是“或”或其他什么。像这样的东西,但不知道如何去做:
$("input[name='typeofmailerradio']").click(function() || $("input[name='typeofmailerradio']:checked").val(function() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
});
顺便说一句,我写的提议解决方案根本不起作用。在加载时不起作用,在点击时不起作用。
不起作用:
$("input[name='typeofmailerradio'],input[name='typeofmailerradio']:checked").click(function() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
});
不起作用:
$("input[name='typeofmailerradio'],input[name='typeofmailerradio']:checked").val(function() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
});
这就是我做的工作......
$(document).ready(function() {
function typeOfMailer() {
if($('#typeofmailerradio1').is(':checked')) {
$('#typeofpostcardmaileroptions').show("fast");
$('#snapapartoption').hide("fast");
$('#typeofspecialtymaileroptions').hide("fast");
$('#typeofmaileroptions').hide("fast");
}
else if($('#typeofmailerradio2').is(':checked')) {
$('#typeofpostcardmaileroptions').hide("fast");
$('#snapapartoption').show("fast");
$('#typeofspecialtymaileroptions').hide("fast");
$('#typeofmaileroptions').hide("fast");
}
else if($('#typeofmailerradio3').is(':checked')) {
$('#typeofpostcardmaileroptions').hide("fast");
$('#snapapartoption').hide("fast");
$('#typeofspecialtymaileroptions').show("fast");
$('#typeofmaileroptions').hide("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
$('#snapapartoption').hide("fast");
$('#typeofspecialtymaileroptions').hide("fast");
$('#typeofmaileroptions').show("fast");
}
}
$("input[name='typeofmailerradio']").click(function() {
typeOfMailer();
});
typeOfMailer();
});
答案 0 :(得分:3)
您可以使用多个选择器:
$('input[name=foo],input[name=bar]:checked').whatever();
^---separate them with a comma
答案 1 :(得分:1)
尝试类似......
$(document).ready( function() {
function do_stuff() {
if(this.value == 'Postcards') {
$('#typeofpostcardmaileroptions').show("fast");
}
else {
$('#typeofpostcardmaileroptions').hide("fast");
}
//more if/else's for more radio values here
}
$("input[name='typeofmailerradio']").click(function() {
do_stuff();
});
do_stuff();
}
你无法真正“重用”匿名函数。所以定义它们。