Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将名称作为数组的输入元素的验证_Javascript_Jquery_Html - Fatal编程技术网

Javascript 将名称作为数组的输入元素的验证

Javascript 将名称作为数组的输入元素的验证,javascript,jquery,html,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" /> 但这不起作用 请注意:这些字段是根据需要动态生

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

<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" />
但这不起作用

请注意:这些字段是根据需要动态生成的(单击)。 谁能告诉我我犯了什么错误

更新:


请参见

您不能通过starts with Javascript选择器访问它吗

身份证

或名称

$( "input[name^='contract_copy_text']" )
这将是一个数组

然后使用.each迭代

$( "input[id^='contract_copy_text']" ).each(function( index ) {
  var x = $( this ).val();
});

问题在于您在此处编写jQuery选择器的方式:

var contract_copy_text = $('#contract_copy_text[]').val();
var contract_copy_pdf = $('#contract_copy_pdf[]').val(); 
您必须转义
[
]
字符(使用
\\
),因为:

资料来源:

若要将任何元字符(例如!“$%”和“()*+,./:;?@[]^`{124;}~)用作名称的文字部分,必须使用两个反斜杠对其进行转义:\


“但那不起作用”怎么不起作用?发生了什么事?为什么元素id中有
[]
?代码中有
return
,父函数在哪里,何时调用它?@atmd。请看小提琴“haing name as array”-名称不是数组。它只是有
[]
在name.PHP中会赋予此特殊含义,并将其中的数据放入数组中,但就HTML而言,
[]
没有任何特殊之处(就CSS而言,它在选择器中是特殊的,因此请参见Andrea的回答)。更简单的解决方案是只更改您的ID,它们不需要遵循PHP的命名约定。不要将
[]
放入ID中,您的生活会更轻松。@Quentin谢谢。但我正在上载/插入数据库中的这些字段值和文件。所以使用[]在里面name@Ganesh-那又怎样?别管名称。你也在ID中放入
[]
,并在jQuery中使用ID选择器。具体来说,你必须转义
[
]
使用选择器中的
\
,然后使用放置选择器的字符串文本中的另一个
\
转义
\
$( "input[id^='contract_copy_text']" ).each(function( index ) {
  var x = $( this ).val();
});
var contract_copy_text = $('#contract_copy_text[]').val();
var contract_copy_pdf = $('#contract_copy_pdf[]').val(); 
var contract_copy_text = $('#contract_copy_text\\[\\]').val();
var contract_copy_pdf = $('#contract_copy_pdf\\[\\]').val();