早上好。我遇到了一個我正在努力解決的問題,但由於我沒有完全理解JSP/Java平臺,並且沒有完全理解以正確的方式實現我的代碼的方式,我陷入了困境。我有一個ASP背景,所以我對一些概念有點熟悉。如何保持動態添加控件ater回發? Javascript,JSP
我遇到的問題是:我試圖填充動態標籤和文本框以在網頁(JSP)上出現。我已經成功地用一段JavaScript代碼填充文本框,但是,當我提交表單時(在Postback上),我的動態控件已經消失了,但是我的所有靜態控件仍然存在。我需要找到一種方法將我的信息保存在提交的動態控件中。當我有錯誤時表單不提交,但當表單完成渲染時,所有信息和動態文本全部丟失。
我的解決方案:我已經決定使用隱藏域來保存這些信息,但是我不能斷火的隱藏字段的形式提交後請有以下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function validateForm(){
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="" && document.getElementById('two').value==1){
alert("EMPTY");
document.getElementById('text').style.display = "block";
return false;
}else{
document.myform.submit();
}
}
function display(el) {
if (el.value == "two") {
document.getElementById('text').style.display = "block";
}else {
document.getElementById('text').style.display = "none";
document.getElementById('dynbox').value = '';
}
}
</script>
</head>
<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
<label >First Name</label> <input type="text"/>
<div>
<input type="radio" name="radio1" id="one" value="one" onchange="display(this);"/>Eligible
</div>
<div>
<input type="radio" name="radio2" id="two" value="two" onchange="display(this);"/>Not Eligible
</div>
<div id="text" class="glassy" name="mytext" style="display:none;">Other: <input type="text" id="dynbox"/>
</div>
<div>
<input type="hidden" name="mytext" value="${mytext}" />
<br></br>
<input type="submit" onclick="validateForm()" value="Submit"/>
</div>
</form>
</body>
</html>
看看我所試圖做的選擇「不合格」選項並在文本框'mytext'中鍵入一些文本,然後按提交。一旦我按提交,並且如果沒有填寫名字文本框,那麼我想觸發我的隱藏文本框,這樣我就不會在我的動態創建的文本框中丟失我的信息。
我希望這是有道理的。我不確定如何在JSP中執行操作。有人可以提供關於如何獲得預期結果的指導嗎?回發後保持動態控制?
在此先感謝。
使用Ajax提交表單而不是常規的HTML提交。 – developerwjk
對不起,我還不太瞭解AJAX!但會看看它的一些文檔。 – Naina