[英]Passing a JSP value to a javascript
我有這個劇本
<script type="text/javascript">
$(document).ready(function(){
var data=$('#data').val();
var counter = 1;
var d=new Date();
var i;
var newdate= new Array();
newdate=$('#newdate').val();
newdate= newdate.replace("[", "").replace("]", "");
var newdate1=newdate.split(",");
var a=newdate1[0];
var b=newdate1[1];
var c=newdate1[2];
var dateString=$('#strtime').val();
var dateString2=$('#endtime').val();
var dateString1=$('#date').val();
var d1 = new Date(dateString1+" "+dateString);
var d5= new Date(dateString1+" "+dateString2);
alert(d5);
var yo=d1;
var d3=new Date(dateString1+" "+a);
var d4=new Date(dateString1+" "+b);
setInterval(function() {
if(yo.getTime() <= d.getTime()){//compare current time and add half n hour to the db time variable and create a new textbox
if(yo.getTime() <= d5.getTime()){
//alert("hello");
if( (d1.getTime() == d3.getTime()) || (d1.getTime() == d4.getTime())){
var freq=$('#freq').val();
var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
//the problem lies here
newTextBoxDiv.after().html('<div><label style="float:left;">'+yo+'</label></div><textarea name="textbox' + counter + '" id="textbox' + counter + '" value="data'+data+'"/>');
newTextBoxDiv.appendTo("#TextBoxesGroup");
yo.setMinutes(yo.getMinutes() + 30);
}
}
},1000);
});
</script>
html code
<input type="hidden" id="data" name="data" value="<%=rsta.getString("data");%>"/>
該腳本會根據時間添加文本框,在這種情況下,每半小時添加一次。
我從數據庫中獲取一些數據,將其傳遞給隱藏字段,然后獲取腳本中的值。
我在腳本中使用了Alert來顯示數據庫中的數據,它也會顯示。 但是當我將其傳遞給此代碼行中的value字段時
newTextBoxDiv.after().html('<div><label style="float:left;">'+yo
+'</label></div><textarea name="textbox' + counter
+ '" id="textbox' + counter
+ '" value=""/>');
數據沒有出現。 難道我做錯了什么?
即使我硬編碼並用該值編寫某些內容,它也不會顯示。
我也嘗試過直接使用JSP進行傳遞,但這也不起作用。
我認為除了:
var newTextBoxDiv = $(document.createElement('div'))
.attr("id", 'TextBoxDiv' + counter);
試試這個:
var newTextBoxDiv = $('<div/>').attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after('<div><label style="float:left;">...all other code');
所以對我來說,這段代碼應該像這樣:
var newTextBoxDiv = $('<div/>').attr("id", 'TextBoxDiv' + counter);
//the problem lies here
newTextBoxDiv.after('<div><label style="float:left;">'+yo
+'</label></div><textarea name="textbox' + counter
+ '" id="textbox' + counter
+ '">data'+data+'"</textarea>'); //<---see this here
newTextBoxDiv.appendTo("#TextBoxesGroup");
yo.setMinutes(yo.getMinutes() + 30);
即使您不必調用.html()
也可以在.after()
方法中傳遞所有html,這會將html推送到目標元素之后。
描述 : 在匹配元素集中的每個元素之后插入由參數指定的內容。
html('<div><label style="float:left;">'+yo+'</label></div>
<textarea name="textbox'+ counter +'" id="textbox'+counter+ '">
data'+data+'</textarea>');
嘗試這樣的事情
newTextBoxDiv.after().html('<div><label style="float:left;">'+yo+'</label></div><textarea name="textbox' + counter + '" id="textbox' + counter + '" >data'+data+'</textarea>');
當我進行硬編碼並發出警報時,您得到的“數據”是什么
'<div><label style="float:left;">'+yo+'</label></div> <textarea name="textbox'+ counter +'" id="textbox'+counter+ '"> data'+data+'</textarea>'
我得到了投入。因此,很可能與數據有關。
您也可以只在“ if”條件內放置調試警報,看看您是否正在到達有錯誤的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.