Javascript 用于动态创建或设置隐藏输入的jQuery函数
我试图创建一个函数来动态更新隐藏的输入 以下是我的职责:Javascript 用于动态创建或设置隐藏输入的jQuery函数,javascript,jquery,html,Javascript,Jquery,Html,我试图创建一个函数来动态更新隐藏的输入 以下是我的职责: function updateDeletedFileIds(deletedFileId) { if($('input[name=multiFieldDeletedIds]') == null) { $('.selected_file_info').append('<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value
function updateDeletedFileIds(deletedFileId) {
if($('input[name=multiFieldDeletedIds]') == null) {
$('.selected_file_info').append('<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="'+deletedFileId+'" />');
}
else{
id = $('input[name=multiFieldDeletedIds]').val();
id += ','+deletedFileId
$('input[name=multiFieldDeletedIds]').attr('value', id);
}
}
当第二次调用它时,它应该只更新逗号分隔的值
updateDeletedFileIds(2) =>
'<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="1,2" />'
updateDeletedFileIds(3) =>
'<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="1,2,3" />'
updateDeletedFileId(2)=>
''
UpdateDeletedFileId(3)=>
''
但是我的功能并没有像预期的那样工作。有人能帮我一下吗?要检查jQuery选择器是否返回了任何内容,您应该检查它的length属性。我还建议使用
val()
而不是attr()
来设置值,因为attr()
只影响html属性,而val()
设置其DOM属性
function updateDeletedFileIds(deletedFileId) {
var $el = $('input[name=multiFieldDeletedIds]');
if(!$el.length) {
$('.selected_file_info').append('<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="'+deletedFileId+'" />');
}
else if ($el.val().indexOf(deletedFileId) < 0) {
$el.val($el.val() + ',' + deletedFileId);
}
}
函数updateDeletedFileId(deletedFileId){
var$el=$('input[name=multifieddeletedids]');
如果(!$el.长度){
$('.selected_file_info')。追加('');
}
else if($el.val().indexOf(deletedFileId)<0){
$el.val($el.val()+,'+deletedFileId);
}
}
您可以尝试以下方法:
function updateDeletedFileIds(deletedFileId) {
var $el = $('.selected_file_info');
if($el.find("input.MultiField").length==0) {
$('.selected_file_info').append('<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="'+deletedFileId+'" />');
}
else{
if( $el.find("input.MultiField").val().indexOf(deletedFileId)<0) {
$el.find("input.MultiField").val($el.find("input.MultiField").val() + ','+deletedFileId);
}
}
}
函数updateDeletedFileId(deletedFileId){
变量$el=$('.selected_file_info');
if($el.find(“input.MultiField”).length==0){
$('.selected_file_info')。追加('');
}
否则{
if($el.find(“input.MultiField”).val().indexOf(deletedFileId)你能显示你的HTML代码吗?你遇到了什么错误?或者发生了什么你没有预料到的事情?不起作用…..删除+=
,只在中写+
,否则
@JoshBjelovuk谢谢你的回答我很感激。我如何确保重复的ID不会添加到隐藏字段中。我的意思是如果updateDeletedFileID(1)
第二次不应该更新隐藏字段感谢您的回答。我如何确保重复的ID不会添加到隐藏字段。我的意思是,如果第二次更新删除的ID(1)
,它不应该更新隐藏字段
function updateDeletedFileIds(deletedFileId) {
var $el = $('.selected_file_info');
if($el.find("input.MultiField").length==0) {
$('.selected_file_info').append('<input type="hidden" class="MultiField" name="multiFieldDeletedIds" value="'+deletedFileId+'" />');
}
else{
if( $el.find("input.MultiField").val().indexOf(deletedFileId)<0) {
$el.find("input.MultiField").val($el.find("input.MultiField").val() + ','+deletedFileId);
}
}
}