onsubmit="function()" 不工作
onsubmit="function()" is not working
我想验证 Django 中动态添加的表单字段(存在于 templates/appname 中)。我在 javascript 的帮助下添加了这些字段(addInput.js - 存储在脚本标记中作为源提到的地方)它也有逻辑删除这些字段以及验证这些字段值。但是当我点击 send_invites 按钮时,当我 首先 希望它应该转到 validateEmail()
函数时,它会再次引导我到 app/register 如果一切正常很好然后它应该重定向到app/register。
var counter = 1;
var limit = 5;
function addInput(divName) {
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " Email Addresses");
} else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<p id = 'remove" + counter + "'>Email Address " + (counter + 1) + " : " + "<input type = 'text' name ='myInputs[]'></p>";
document.getElementById(divName).appendChild(newdiv);
counter++;
alert(counter + "add");
}
}
function removeInput(divName) {
if (counter == 1) {
alert("You have reached the limit of removing Email Addresses");
} else {
counter--;
var olddiv = document.getElementById("remove" + counter);
alert(counter + "remove");
olddiv.parentNode.removeChild(olddiv);
}
}
function validateEmail(divName) {
var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;
console.log("cmn");
alert("cmn");
for (i = 0; i < counter; i++) {
var email = $("#remove" + i).val();
alert(email);
// return true;
}
return true;
}
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<br>
<h1 class="page-header">
Send Invites
</h1>
<form method="POST" onsubmit="return validateEmail('dynamicInput')" action="/app/register/">
<div id="dynamicInput">
<p id='remove0'>Email Address 1 :
<input type="text" name="myInputs[]">
</p>
</div>
<br>
<br>
<input type="button" value="Add another Email Address" onClick="addInput('dynamicInput');">
<input type="button" value="Remove Email Address Field " onClick="removeInput('dynamicInput');">
<br>
<br>
<input type="submit" value="Send Invites">
<input type='hidden' name='csrfmiddlewaretoken' value='xyz' />
</form>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
</div>
<style>
a.active {
background-color: #eee;
}
</style>
但是为什么这没有发生呢?其他两个 javascript 函数 addInput 和 removeInput 工作正常。只有 validateEmail 没有被调用,为此我什至调用了 alert 和 console.log 但没有显示任何内容。请帮忙。我是 javascript 的新手。
运行 代码,点击按钮,控制台出现如下错误。
Uncaught SyntaxError: Invalid regular expression:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/:
Unterminated group
查看代码你有一个额外的(
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;
^
所以您要么缺少结尾 )
,要么有多余的 (
。我的猜测是您在 +
之前缺少 )
。看看你在哪里找到了 reg exp,看看它应该是什么。
我想验证 Django 中动态添加的表单字段(存在于 templates/appname 中)。我在 javascript 的帮助下添加了这些字段(addInput.js - 存储在脚本标记中作为源提到的地方)它也有逻辑删除这些字段以及验证这些字段值。但是当我点击 send_invites 按钮时,当我 首先 希望它应该转到 validateEmail()
函数时,它会再次引导我到 app/register 如果一切正常很好然后它应该重定向到app/register。
var counter = 1;
var limit = 5;
function addInput(divName) {
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " Email Addresses");
} else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<p id = 'remove" + counter + "'>Email Address " + (counter + 1) + " : " + "<input type = 'text' name ='myInputs[]'></p>";
document.getElementById(divName).appendChild(newdiv);
counter++;
alert(counter + "add");
}
}
function removeInput(divName) {
if (counter == 1) {
alert("You have reached the limit of removing Email Addresses");
} else {
counter--;
var olddiv = document.getElementById("remove" + counter);
alert(counter + "remove");
olddiv.parentNode.removeChild(olddiv);
}
}
function validateEmail(divName) {
var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;
console.log("cmn");
alert("cmn");
for (i = 0; i < counter; i++) {
var email = $("#remove" + i).val();
alert(email);
// return true;
}
return true;
}
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<br>
<h1 class="page-header">
Send Invites
</h1>
<form method="POST" onsubmit="return validateEmail('dynamicInput')" action="/app/register/">
<div id="dynamicInput">
<p id='remove0'>Email Address 1 :
<input type="text" name="myInputs[]">
</p>
</div>
<br>
<br>
<input type="button" value="Add another Email Address" onClick="addInput('dynamicInput');">
<input type="button" value="Remove Email Address Field " onClick="removeInput('dynamicInput');">
<br>
<br>
<input type="submit" value="Send Invites">
<input type='hidden' name='csrfmiddlewaretoken' value='xyz' />
</form>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
</div>
<style>
a.active {
background-color: #eee;
}
</style>
但是为什么这没有发生呢?其他两个 javascript 函数 addInput 和 removeInput 工作正常。只有 validateEmail 没有被调用,为此我什至调用了 alert 和 console.log 但没有显示任何内容。请帮忙。我是 javascript 的新手。
运行 代码,点击按钮,控制台出现如下错误。
Uncaught SyntaxError: Invalid regular expression: /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/: Unterminated group
查看代码你有一个额外的(
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;
^
所以您要么缺少结尾 )
,要么有多余的 (
。我的猜测是您在 +
之前缺少 )
。看看你在哪里找到了 reg exp,看看它应该是什么。