我正在尝试创建一个表单,其中对于非空的每个条目,必须有一个附件。因此,当填充名称字段时,相关的输入文件应该使用JQuery变为必需。我使用了以下代码,但表单以任何一种方式提交。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
//option A
$("#form").submit(function(e){
if($("#name").val() != ""){
$("#file").prop('required',true);
}
});
});
</script>
</head>
<body>
<form id="form" action="action.php">
<table border="1">
<tr>
<th>Name</th>
<th>ID</th>
<th>Attachment</th>
</tr>
<tr>
<th><input type="text" name="name" id="name"></th>
<th><input type="text" name="id" id="id"></th>
<th><input type="file" name="file" id="file" ></th>
</tr>
<tr>
<th><input type="text" name="name1" id="name1"></th>
<th><input type="text" name="id1" id="id1"></th>
<th><input type="file" name="file1" id="file1"></th>
</tr>
</table>
<input type="submit" >
</form>
</body>
</html>
答案 0 :(得分:1)
您的功能仅在提交时验证名称字段为时已晚,因为表单将在运行验证之前启动提交操作。
您应该使用其他活动进行验证,例如keyup
或changed
。
答案 1 :(得分:0)
由于您action="action.php"
,我们会立即提交,而不会进行验证。为了在.submit()
函数中操作DOM,您必须删除表单标记中的action
属性。