使用Jquery访问innerhtml

时间:2010-09-18 10:25:06

标签: javascript jquery ajax

您好我还在学习Jquery并且在访问表单元素时遇到问题。我的脚本打开一个div,然后使用预先编写的html表单填充它。我使用ajax来获取表单和jquery。这一切都很好,我可以看到包含我的表格的div框。问题是我想填充innerhtml表单,我尝试过javascript和jquery,但我的代码都没有填充文本框。

    divbox = "fixedbox"
// open up the div 
setdiv(divbox,100,600,800)

    // JQ - ajax 
    $(document).ready(function(){ 
    $("#" + divbox).load("../customer_rm/display_email_send.php"); 
    });

   // neither of these will produce any text  
   document.getElementById('mailcc').value = "test";
   $("#mailcc").val("test");

如果需要这里是表。任何人都可以提出任何关于我正在做什么的建议吗?

                <?php
            echo "

            <style type='text/css'>
            table {border: 1px solid black}
            td, tr {border: 0}

            .bdr {
                border: 4px solid black ;
            }
            .white {
                background-color:#FFF ;
            }

            </style>
            <div align='center'>

            <br><br />

            <table width='700' border='2' bgcolor='#CCCCCC'>
            <form id = 'mail'  name='mail' > 
              <tr >
                <td width='20'>&nbsp;</td>
                <td width='50'>&nbsp;</td>
                <td width='50'>&nbsp;</td>
                <td >&nbsp;</td>
                <td width='20' >&nbsp;</td>    

              </tr>

              <tr>
                <td>&nbsp;</td>
                <td rowspan='3'>
                <input type='button'id='send' value='Send'
                style='width:60px; height:40px '
                 /><hr>
                <input type='button' value='Close'
                style='width:60px; height:20px '                        onclick='fadeout()' 
                 />
                </td>
                <td><input type='button' value='To :' /></td>
                <td><input type='text' class='white' id='mailto' size='80' /></td>
                <td>&nbsp;</td>
              </tr> 

              <tr>
                <td>&nbsp;</td>

                <td><input type='button' value='Cc :' /></td>
                <td><input type='text' class='white' id='mailcc' size='80' /></td>
                <td>&nbsp;</td>
              </tr>  
              <tr>
                <td>&nbsp;</td>

                <td><input type='button' value='Bcc :' /></td>
                <td><input type='text' class='white' id='mailbcc' size='80' /></td>
                <td>&nbsp;</td>
              </tr>  
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>  
              <tr>
                <td>&nbsp;</td>
                <td colspan='3'>
                  <textarea name='mail_body' id='mail_body' class='white' 
                  style='height:380px; width:600px; bgcolor:#fff '  >
                  </textarea>
                </td>
                <td>&nbsp;</td>
              </tr>  
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>  
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>  
             </form> 
             </table>


            </div>
            " ;

这是div框

              #fixedbox {
              position:absolute ;
              width: 20px;
              height: 20px;
              top: 40px ; 
              border: 2px solid black;
              background-color:#CCC; 
              left:50% ; 
              margin-left:-300px;
              visibility:hidden ;
              overflow:hidden ;
          } 

2 个答案:

答案 0 :(得分:2)

mailcc是输入字段。您不应使用innerHTML / html()来访问输入值。代替:

document.getElementById('mailcc').value = "test";
$("#mailcc").val("test");

这两个都是非常正确的。但是,假设mailcc中包含display_email_send.php,则此时它尚未加载。您只能在内容load()之后访问它,您可以通过传递回调函数来执行此操作:

$(document).ready(function(){ 
    $('#'+divbox).load('../customer_rm/display_email_send.php', function() {
        $('#mailcc').val('test');
    }); 
});

答案 1 :(得分:0)

document.getElementById('mailcc').innerHTML = "test";