我正在尝试对使用 LiveValidation javascript 库动态添加的表单控件进行客户端验证。
当控件和验证代码从一开始就在那里时,它可以正常工作,但不适用于已动态添加的控件。
静态控制和验证(工作正常)
<!-- the container where the dynamic javascript code manipulates -->
<div id = "FileUploadContainer">
<!--FileUpload Controls will be added here -->
<input id="file0" name = "file" type="file" class ="size4"/>
<script type="text/javascript">
var file0 = new LiveValidation('file0', { wait: 500 });
file0.add(Validate.Presence, { failureMessage: "File is required." });
</script>
<input id="textbox0" name = "txtShotNo" type="text" placeholder="Shot #" class="size1"/>
<script type="text/javascript">
var textbox0 = new LiveValidation('textbox0', { wait: 500 });
textbox0.add(Validate.Presence, { failureMessage: "Shot number is required." });
textbox0.add(Validate.Numericality, { onlyInteger: true, minimum: 1, maximum: 10000 });
</script>
</div>
动态添加的控件和验证(不起作用)
<script type = "text/javascript">
var counter = 1;
function AddFileUpload() {
var div = document.createElement('DIV');
div.innerHTML = '<input id="file' + counter + '" name = "file" type="file" class="size4" />' +
'<script type="text/javascript">' +
' var file' + counter + ' = new LiveValidation(\'file' + counter + '\', { wait: 500 });' +
' file' + counter + '.add(Validate.Presence, { failureMessage: "File is required." });' +
'<\/script>' +
'<input id="textbox' + counter + '" name = "txtShotNo" type="textbox" placeholder="Shot #" class="size1" />' +
'<script type="text/javascript">' +
' var textbox' + counter + ' = new LiveValidation(\'textbox' + counter + '\', { wait: 500 });' +
' textbox' + counter + '.add(Validate.Presence, { failureMessage: "Shot number is required." });' +
' textbox' + counter + '.add(Validate.Numericality, { onlyInteger: true, minimum: 1, maximum: 10000 });' +
'<\/script>' +
'<input id="Button' + counter + '" type="button" value="Remove" onclick = "RemoveFileUpload(this)" class="primary" />';
document.getElementById("FileUploadContainer").appendChild(div);
counter++;
}
function RemoveFileUpload(div) {
document.getElementById("FileUploadContainer").removeChild(div.parentNode);
}
</script>
任何人都对我如何获得验证以用于动态添加的控件有一些指示?