如何使用jquery获取文本字段的val?

时间:2017-07-31 07:24:38

标签: php jquery codeigniter

代码:

<script>
    $(document).ready(function(){
        $(".comments").keyup(function(){
            id = this.id;
            comment = $("#com"+id).val();
            alert(comment); 
        });
    });
</script>
<?php
    $this->db->select('*');
    $this->db->from('contact');
    $where = "admin_id like '%$client_id%'";
    $this->db->where($where);
    $query = $this->db->get();
    $result = $query->result_array();
    foreach ($result as $fet) 
    {
?>
    <tr>
        <td>
            <input type="text" name="comments" class="comments" id="com<?php echo $fet['id']; ?>" />
        </td>
        <td>
            <input type="submit" name="submit" id="submit" value="save" />
        </td>
    </tr>
<?php 
    }
?>

在这段代码中,我有多个文本字段名称注释,我想提醒多个注释文本字段的值。在这里,当我写东西时,它显示我未定义。那么,如何使用不同的id获取评论值的字段?请帮帮我。

谢谢

5 个答案:

答案 0 :(得分:2)

您需要更改,因为id将返回com123,这将是com,但最重要的是,您将再次添加comcom123,这将成为 id = this.id; comment = $('#'+id).val(); this

<div> <span id="save" onclick="javascript:saveChart1();"  style="height:10px;width:40px; color:#000;"> comment</span></div> 
<div id="chart_load"></div>
<div id="chart_save">
     <canvas id="chart_area" height="300px" width="415px"></canvas>
</div> 

其他替代解决方案被其他人建议使用function saveChart1() { var outcan=document.getElementById("chart_area"); var obj=document.getElementsByTagName("canvas"); var ctx=outcan.getContext("2d"); ctx.drawImage(obj[1],0,0); html2canvas($("#chart_save"), { onrendered: function(canvas) { var a = document.createElement('a'); // toDataURL defaults to png, so we need to request a jpeg, then convert for file download. a.href = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); a.download = 'ss.jpg'; a.click(); } }); } 代替。

答案 1 :(得分:1)

使用此更改您的keyup事件。 this.id为您提供com+id,其中id通过php代码设置。

$(".comments").keyup(function(){
        id = this.id;
        comment = $(this).val();
        alert(comment); 
});

答案 2 :(得分:0)

&#13;
&#13;
    $(document).ready(function(){
        $(".comments").keyup(function(){
            id = $(this).attr('id');
            comment = $("#"+id).val();
            alert(comment); 
        });
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


    <tr>
        <td>
            <input type="text" name="comments" class="comments" id="com1" />
        </td>
        <td>
            <input type="submit" name="submit" id="submit" value="save" />
        </td>
    </tr>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

只需尝试使用this关键字,无需使用id

    $(document).ready(function(){
        $(".comments").keyup(function(){
            alert($(this).val()); 
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="comments" class="comments" id="com1" value="this is comment 1" />
<input type="text" name="comments" class="comments" id="com2" value="this is comment 2" />
<input type="text" name="comments" class="comments" id="com3" value="this is comment 3" />

答案 4 :(得分:0)

因此,如果我理解正确,您希望每次用户输入具有该特定文本框值的任何内容时发出警报?使用jQuery,这样的事情应该这样做:

$("input[name=textbox1]").on("keyup", function() {
 window.alert($(this).val());
});

$("textarea[name=textbox2]").on("keyup", function() {
 window.alert($(this).val());
});
.form-input {
  text-align: center;
  padding: 5px;
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST">
 <label>Textbox Example: </label><input type="text" name="textbox1" placeholder="Type Something.." class="form-input" /> <br /> <br />
 <label>Textarea Example:</label> <textarea name="textbox2" placeholder="Type Something.." class="form-input"> </textarea> <br /> <br />
 <input type="submit" name="submit" value="Submit" class="form-input" />
</form>