gpt4 book ai didi

jquery - HTML 文本区域值正在重置

转载 作者:行者123 更新时间:2023-11-28 08:39:37 24 4
gpt4 key购买 nike

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

<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>

最佳答案

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

只需添加一个 type="button" 属性来停止它:

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

jsFiddle example

关于jquery - HTML 文本区域值正在重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com