Jquery 如果单击复选框,则从xml字符串中删除某些值

Jquery 如果单击复选框,则从xml字符串中删除某些值,jquery,Jquery,我有一个表单,它构建了一个xml字符串,其中包含.ajax提交表单到WCF服务的submitHandler中的所有值(不包括一些值),下面是一个示例: function SetServices() { var services = '<SERVICE><SERVICECD>1KNTK</SERVICECD></SERVICE>'; $(":checked:not([name='ServiceType'], #Standard

我有一个表单,它构建了一个xml字符串,其中包含.ajax提交表单到WCF服务的submitHandler中的所有值(不包括一些值),下面是一个示例:

function SetServices() {        
    var services = '<SERVICE><SERVICECD>1KNTK</SERVICECD></SERVICE>';
$(":checked:not([name='ServiceType'], #Standard, #NoneForex, #RTT, #PRN, #BW, #Metrics, #STATUS :input, #EX_AGREEMENTS :input, #final_step :input)").each(function() {
services += '<SERVICE><SERVICECD>' + this.id + '</SERVICECD></SERVICE>';
});
$('#SERVICES').val('<SERVICES>' + services + '</SERVICES>');            
}
SetServices();

这不起作用,我需要弄清楚如何从字符串“SetServices”构建中删除。

我会将您的函数更改为:

function SetServices() {        
    var services = '<SERVICE><SERVICECD>1KNTK</SERVICECD></SERVICE>';
$(":checked:not([name='ServiceType'], #Standard, #NoneForex, #RTT, #PRN, #BW, #Metrics, #STATUS :input, #EX_AGREEMENTS :input, #final_step :input)").each(function() {
  if ($("#CME").is(":checked") ) 
{
    switch ( this.id) {
        case "id1", "id2", "id3":
           break;
        default:
           services += '<SERVICE><SERVICECD>' + this.id + '</SERVICECD></SERVICE>'; 
            break;
    }
    }
else {
   services += '<SERVICE><SERVICECD>' + this.id + '</SERVICECD></SERVICE>';
}


});
$('#SERVICES').val('<SERVICES>' + services + '</SERVICES>');            
}
SetServices();
function SetServices(){
风险值服务='1KNTK';
$(“:checked:not([name='ServiceType'],#Standard,#NoneForex,#RTT,#PRN,#BW,#Metrics,#STATUS:input,#EX#AGREEMENTS:input,#final#step:input))。每个(函数(){
如果($(“#CME”)。是(“:选中”))
{
开关(this.id){
“id1”、“id2”、“id3”案:
打破
违约:
服务+=''+此.id+'';
打破
}
}
否则{
服务+=''+此.id+'';
}
});
$(“#服务”).val(“+SERVICES+”);
}
SetServices();

@Avitus-不熟悉“案例”,我试试看它是否有效。谢谢你的帮助!这是javascript中的一个switch语句。@Avitus-这里有大小写“id1”、“id2”,它们不需要“#id1”、“#id2”吗?试着让我的头围绕着这个…它必须是任何this.id来阻止添加到字符串。我会提醒它,看看它是什么。这里有一个关于switch@Avitus的参考——当我同时检查所有的“id1”、“id2”、“id3”、“id4”、“id5”时,它们仍然被提交,如果我只做了一个,那就不是了。
function SetServices() {        
    var services = '<SERVICE><SERVICECD>1KNTK</SERVICECD></SERVICE>';
$(":checked:not([name='ServiceType'], #Standard, #NoneForex, #RTT, #PRN, #BW, #Metrics, #STATUS :input, #EX_AGREEMENTS :input, #final_step :input)").each(function() {
  if ($("#CME").is(":checked") ) 
{
    switch ( this.id) {
        case "id1", "id2", "id3":
           break;
        default:
           services += '<SERVICE><SERVICECD>' + this.id + '</SERVICECD></SERVICE>'; 
            break;
    }
    }
else {
   services += '<SERVICE><SERVICECD>' + this.id + '</SERVICECD></SERVICE>';
}


});
$('#SERVICES').val('<SERVICES>' + services + '</SERVICES>');            
}
SetServices();