用户有一些列表(完全是列表,但不是点)。用户可以添加列表中的一些其他独特元素 - 字符串。表单,允许提交新元素,是隐藏的。要添加新的用户,请按“显示添加水果表单”按钮,显示表单,获取字符串,如果字符串唯一,则将其推送到字符串,如果不是 - 警告消息。
问题是:
HTML:
<div id="plus_tab">Show Add Fruit Form</div>
<div id="div_form" class="hidden">
<form id="my_form" >
<input type="text" name="value1"/>
<input type="submit" value="Add fruit"/>
</form>
</div>
<div id="result">
result
</div>
JS:
var fruits = ['apple', 'strawberries']
$('#plus_tab').click(function(){
$("#div_form").removeClass('hidden').addClass('visible')
$("#my_form").submit(function(event){
event.preventDefault()
new_fruit = $(this).find('input[name="value1"]').val()
if ($.inArray(new_fruit, fruits)==-1 ){
fruits.push(new_fruit);
$('#result').empty().append(fruits);
$("#div_form").removeClass('visible').addClass('hidden');
}else {
alert('Name '+new_fruit+' exist, choose other')
}
})
})
的CSS:
.hidden {
display: none;
}
.visible {
display: block;
}
答案 0 :(得分:4)
使用您的代码,每次点击submit
#plus_tab
处理程序
submit
处理程序只能绑定一次:
$("#my_form").submit(function(event){
event.preventDefault()
new_fruit = $(this).find('input[name="value1"]').val()
if ($.inArray(new_fruit, fruits)==-1 ){
fruits.push(new_fruit);
$('#result').empty().append(fruits);
$("#div_form").removeClass('visible').addClass('hidden');
}else {
alert('Name '+new_fruit+' exist, choose other')
}
})
$('#plus_tab').click(function(){
$("#div_form").removeClass('hidden').addClass('visible');
})