用于为空、取消选择或取消选中的表单控件的jQuery选择器

用于为空、取消选择或取消选中的表单控件的jQuery选择器,jquery,typescript,asp.net-core,Jquery,Typescript,Asp.net Core,在我的ASP.Net核心MVC视图表单中,有复选框、无线电组、选择下拉列表、文本区域、文本输入和数字输入。每个都是数据库中的一个表记录。每个控件都有一个带有原始值的“data oldvalue”属性,以及呈现控件时记录键的“data useranswerid”。提交表单时,如果控件为null(null、未选中或取消选中),则需要删除与recordID匹配的记录。我使用以下jQuery选择器选择目标元素,但它只选择非null控件。如何选择这些表单控件?非常感谢 const target=$(':

在我的ASP.Net核心MVC视图表单中,有复选框、无线电组、选择下拉列表、文本区域、文本输入和数字输入。每个都是数据库中的一个表记录。每个控件都有一个带有原始值的“data oldvalue”属性,以及呈现控件时记录键的“data useranswerid”。提交表单时,如果控件为null(null、未选中或取消选中),则需要删除与recordID匹配的记录。我使用以下jQuery选择器选择目标元素,但它只选择非null控件。如何选择这些表单控件?非常感谢

const target=$(':checked,:selected,textarea,input[type=“text”],input[type=“number”]);
target.each(函数(){
const$this:any=$(this);
让newValue:string='';
如果($this.val()){
newValue=$this.val().toString();
}
让oldValue:string='';
如果($this.data('oldvalue')){
oldValue=$this.data('oldValue').toString();
}
如果(newValue!==oldValue){….在此处删除或插入记录的逻辑。。。。
}

}
谢谢你的帮助。这对我来说很有效。一定有一种不那么复杂的方法

//查找所有未选中(null)的持久化表[http://www.unchecked.com][1](':input:not(:checked,:selected)]
常量uncheckedPersistables=$('.persistable',格式)
.filter(函数(){
return!this.value;
});
log('manuallyCreateTheJson2:::uncheckedPersistables',uncheckedPersistables);
未选中的持久性。每个(函数(索引,项){
const$thisunchedpersistable:any=$(this);
log('uncheckedPersistables('+index+'),项);
如果($thisUncheckedPersistable[0]。类型=='checkbox'| |$thisUncheckedPersistable[0]。类型==='radio'){
const oldValue:string=$thisUncheckedPersistable.data('oldValue')?.toString();
让checkboxValue:string=$thisUncheckedPersistable.val();//获取收音机或复选框的value属性
if(oldValue.indexOf(checkboxValue)!=-1&&!$thisUncheckedPersistable[0]。已选中){
let newValue:string='';//将空值指定为要删除此答案ID的信号
让我们这样回答:IUserAnswer={};
thisAnswer=createAjaxAnswer($thisUncheckedPersistable,facilityID,facilityRelationshipID,fiscalYear,userID,oldValue,newValue,changedAnswerCount++);
newAnswers.push(这个答案);
}
}

});
对于您的示例,您的意思是无法获得未选中的复选框吗?您删除记录的意思是什么?从数据库中删除或任何其他含义?
:选中的
意味着匹配所有选中或选中的元素。因此您无法获得未选中和未选中的元素。请尝试使用
输入[type=“checkbox”]
。您可以使用和伪选择器,例如
$(':input:not(:checked,:selected)