我有文本框和上传文件,比如:
<input type="text" id = "contract_copy_text[]" name="contract_copy_text[]" value="" maxlength="50"/>
<input type="file" name="contract_copy_pdf[]" id="contract_copy_pdf[]" accept="application/pdf" />
我无法证实。
我试过:
var contract_copy_text = $('#contract_copy_text[]').val(); // document.getElementById('contract_copy_text').value;
var contract_copy_pdf = $('#contract_copy_pdf[]').val(); // document.getElementById('contract_copy_pdf').value;
if (contract_copy_text == "") {
alert("insert contract copy title for file");
$('#err_lbl_contract_copy_text').html('insert contract copy title for file');
return false;
}
if (contract_copy_pdf == "") {
alert("Please select contract copy pdf file for upload");
$('#err_lbl_contract_copy_pdf').html('Please select contract copy pdf file for upload');
return false;
}
但那不管用。
请注意:这些字段是根据需要动态生成的(单击时)。
有人能告诉我我犯了什么错吗。
更新:
请参见fiddle
最佳答案
问题在于您在这里编写jQuery选择器的方式:
var contract_copy_text = $('#contract_copy_text[]').val();
var contract_copy_pdf = $('#contract_copy_pdf[]').val();
必须转义
[
和]
字符(使用\\
),因为they have special meaning inside the selector expression:var contract_copy_text = $('#contract_copy_text\\[\\]').val();
var contract_copy_pdf = $('#contract_copy_pdf\\[\\]').val();
来源https://api.jquery.com/category/selectors/:
使用任何元字符(例如!“#$%&'()*+,./:;?@[]^ `{}~)作为名称的文字部分,必须用两个反斜杠进行转义:\。
关于javascript - 验证具有数组名称的输入元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31720542/