如何在javascript中获取动态创建的文本框值

时间:2014-12-29 11:41:48

标签: javascript html ajax

嗨朋友其实我有2个问题.. 我正在创建像facebook这样的社交网站...... 在这个网站上我有多个来自数据库的帖子 如果有人想对这篇文章发表评论,那么只有第一篇文章正在发挥作用..但第一篇文章的评论将转到最后一篇帖子..

<%String sql="select * from post ORDER BY id DESC";
        st = con.createStatement();
        rs=st.executeQuery(sql);%>
<input type="text" id="postboxwritereview" name="postboxwritereview" placeholder="write a review" onkeypress="loadXMLDoc2()"/>

<script type="text/javascript">
document.getElementById("postboxwritereview").onkeypress = function(event){
            if (event.keyCode == 13 || event.which == 13){
               var xmlhttp;
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("postbox_bottom_my_review").innerHTML=xmlhttp.responseText;
}
}
var x = document.getElementById("postboxwritereview").value;
xmlhttp.open("GET", 'insertReview.jsp?user='+x+'&p_id=<%=post_id%>&p_uid=<%=post_uid%>&author_uid=<%=u_id%>', true);
xmlhttp.send();
document.getElementById("postboxwritereview").value="";
}
};
</script>

第二个问题是...... 我从servlet获得ajax响应并显示resppnse到div 但是有很多div使用相同的id动态创建。所以ajax响应从第一篇帖子转到最后一篇帖子..Plz帮帮我 这是代码.. AJAX代码

<script type="text/javascript">
function loadXMLDoc(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("showRating").innerHTML=xmlhttp.responseText;
}
}
var username=$('input:radio[name=rating_blog]:checked').val();
xmlhttp.open("GET", 'InsertRating?user='+username+'&p_id=<%=post_id%>&p_uid=<%=post_uid%>', true);
xmlhttp.send();
}
</script>

HTML CODE

<div id="submit" onclick="loadXMLDoc()">
<div>
<input id="rating1" type="radio" name="rating_blog" value="1" onclick="this.form.submit()">
<input id="rating2" type="radio" name="rating_blog" value="2" onclick="this.form.submit()">
<input id="rating3" type="radio" name="rating_blog" value="3" onclick="this.form.submit()">
</div>

1 个答案:

答案 0 :(得分:0)

我在页面上的ID应该是唯一的!

如果您使用jQuery,为什么不使用'$ .ajax()'?

你可以试试这个:

function loadXMLDoc(event){
    var xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            $(event.target).find("#showRating").text = xmlhttp.responseText
        }
    }
    var username=$('input:radio[name=rating_blog]:checked').val();
    xmlhttp.open("GET", 'InsertRating?user='+username+'&p_id=<%=post_id%>&p_uid=<%=post_uid%>', true);
    xmlhttp.send();
}