我正在尝试用HTML和JQuery做一个页面。我想要做的是在文本框中键入电子邮件,按下按钮时,将他添加到对象,并显示添加的新电子邮件和已发送的电子邮件。我的问题是新的电子邮件取代了我的电子邮件,它没有在它之后添加。我该如何解决?
这是我的代码
enter code here
<html>
<head>
<script src="config/jquery-1.8.3.min.js"></script>
<script type="text/javascript" language="javascript">
var obj = {};
$(document).ready(function(){
$('#agr').click(function(){
var correo_val = $('#correoe').val();
var estrc = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(correo_val == ''){
alert("Debes agregar un correo");
}
else if(!estrc.test(correo_val)){
alert("Correo no valido");
}
else if(estrc.test(correo_val)){
alert("Correo agregado exitosamente");
if(!obj.hasOwnProperty(correo_val)){
arr = [];
arr.push(correo_val);
// obj=arr;
obj2 = {};
obj2 = arr;
obj = obj2;
}else{
obj2 = {};
obj = obj2;
}
alert(obj);
$("#listac").html(obj);
}
});
});
</script>
</head>
<body>
<div>
<table style='margin-top:10%' align='center'>
<tr> <td> Ingresar correo electrónico </td> </tr>
<tr> <td> <input type='text' name='correoe' id='correoe'> </td> </tr>
<tr> <td> <input type='button' name='agregar' value='agregar' id='agr'> </td> </tr>
</table>
</div>
<div style="background:#FFFFFF;border:0" class="box" id="LCriterios">
<h1><span id="field"></span><span style="float:right;"></span></h1>
<!--<label><span>Tipo de operación</b></span><select class='opSelect' name='selOp' id='selOp'></select></label>
<label id='selCriterio'></label>
<label style="height: 30px;"><input type="button" class="btAgregar" value="Agregar" id="btn_add"/></label>-->
<label id="label12">Correos electrónicos </label>
<div id='listac'></div>
</div>
</body>
答案 0 :(得分:0)
我刚刚对你的javascript进行了一次调整Fiddle -
if(!obj.hasOwnProperty(correo_val)){
arr = []; // <-- move this to the first line where
// you already have var obj = {};
arr.push(correo_val);
...
将您用于存储有效电子邮件的arr = [];
从此if()
子句移动到您还声明为var obj = {};
的代码的第一行。否则,每次添加另一封电子邮件之前,arr = [];
将是一个空数组,并且始终只有一个元素(添加的最后一封电子邮件)。