javascript - 验证名称为数组的输入元素

标签 javascript jquery html

我有文本框和上传文件,如:

<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/ :

To use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[]^`{|}~ ) as a literal part of a name, it must be escaped with with two backslashes: \.

关于javascript - 验证名称为数组的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720542/

相关文章:

javascript - 即时加载 Google 字体样式表以供预览

html - 添加表 rowspan 属性的最后一行不起作用

javascript - 滚动时固定标题和导航栏下的内容

javascript - 使用示例数据重新排列 json

javascript - 在 Angular View 中,ng-repeat 的垂直滚动不可见

javascript - 如何删除动态内容底部的空间?

javascript - Invariant Violation : Element type is invalid: expected a string or a class but got: undefined. 检查 `MyApp` 的渲染方法

c# - 如何在不使用 ajax 扩展或 Web 服务的情况下在文本框中提供自动完成功能?

html - z-index 会影响元素超过 "hovered"吗?

javascript - 在 jquery 中打印数组的单个字段