HTML textarea值正在重置

时间:2015-01-09 21:48:14

标签: jquery html css

我有一个文本区域,我用作各种xml编辑器。我还有一个按钮,打开一个带有几个字段的对话框(隐藏div),当按下对话框上的完成按钮时,生成一个xml标签并附加到textarea的末尾,我的问题是当我试图隐藏时在此之后的对话框中,文本区域将重置为其原始值。任何想法?

<html>
<head>
<style>
.buttonPane{
background: grey;
padding:20px;
}
.dialog{
width: 50%;
min-width:300px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: grey;
padding: 20px;
border: 3px solid black;
}
.dialog input{
width:80%;
margin:10px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/Javascript">
$(document).ready(function(){
var content = "";
var editor = $('#mainEditor');
$('#insert_choice').click(function(){
content = editor.val();
$('#choice').show();
editor.val(content);
});
$('#choice_cancel').click(function(){ //cancel button
$('#choice').hide()
});
$('#choice_add').click(function(){ //add button
editor.val(content);
var choicePrompt = $('#choicePrompt').val();
var choiceOption1 = $('#choiceOption1').val();
var choiceOption2 = $('#choiceOption2').val();
var choiceOption3 = $('#choiceOption3').val();
var choiceOption4 = $('#choiceOption4').val();
var choice = "<choice>" + choicePrompt + "::" + choiceOption1 + "::" + choiceOption2 + "::" + choiceOption3 + "::" + choiceOption4 + "</choice>";
editor.val(editor.val() + choice);
content = editor.val();
$('#choice').hide()
});
editor.val(content);
});
</script>
</head>

<body>
<form action="">
<div class="buttonPane">
<button id="insert_choice">Insert Choice </button>
</div>
<br/>
</form>
<input type="submit" value="Submit">
<textarea id='mainEditor' style='width:100%; height: 500px;'></textarea>
<input type="submit" value="Submit">
<div id="choice" class="dialog">
Choice Prompt: <input id="choicePrompt" type="text"/><br/>
Option 1: <input id=choiceOption1" type="text"/><br/>
Option 2: <input id=choiceOption2" type="text"/><br/>
Option 3: <input id=choiceOption3" type="text"/><br/>
Option 4: <input id=choiceOption4" type="text"/><br/>
<button id="choice_add">Add Choice</button>
<button id="choice_cancel">Cancel</button>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我猜这是因为你的表单中有一个没有类型属性的按钮,而按钮的默认类型是提交。因此,当单击插入按钮打开对话框时,您实际上是在提交表单并重新加载页面。

只需添加type="button"属性即可将其停止:

<button type="button" id="insert_choice">Insert Choice</button>

<强> jsFiddle example