获取动态创建的输入的值

时间:2015-02-26 09:50:33

标签: php jquery

我有以下jquery脚本,它将表单加载到div" blankform"

jQuery('#metentry').submit(function(e){
    e.preventDefault(); 
    // getting data from form to variables
    var date = jQuery('#stddate').val();
    var kgsunit = jQuery('#unit').val();
    var kgsshift = jQuery('#shift').val();

    //sending data to script
    jQuery.post("get_blank_form.php", {
        "date": jQuery('#stddate').val(), 
        'unit': kgsunit,
        'shift': kgsshift, 
    }, function(data) {      
        //loading a form to the div blankform
        jQuery('#blankform').html(data);
    });

get_blank_form.php包含以下代码

<?php
    echo'<form id="shiftentry" name="shiftentry" >';
    echo "Date:<input id=shiftdate value='".$date."'/>"; 
    echo "Unit:<input id=shiftdate value='".$unit."'/>";
    echo "Shift:<input id=shiftdate value='".$shift."'/><br/>";
    echo "<table><tr><th>No</th><th>Ele</th><th>Location</th><th>Dose Rate (mGy/h)</th><th> Tritium (DAC)</th>  <th>Part (DAC)</th> <th>Iodine (DAC)</th><th>   Surface Cont. (Bq/cm2) </th></tr>";

    while($row2 = mysql_fetch_array($result_sec))
    { 
        echo "<tr>";
        echo "<td>".++$rc."</td>";
        echo "<td><input size='5' id='".$row2['elevation']."' value='".$row2['elevation']."' /></td>";
        echo "<td><input id='".$row2['loc_id']."' value='".$row2['location']."' /></td>";
        echo "<td><input size='5' id='dose".$rc."'  value='".$row2['radn_level']."'/></td>";
        echo "<td><input size='5' id='h3".$rc."' value='0' /></td>";
        echo "<td><input size='5' id='part".$rc."' value='0' /></td>";
        echo "<td><input size='5' id='iod".$rc."' value='0' /></td>";
        echo "<td><input size='5' id='cont".$rc."' value='0' /></td>";
        echo "</tr>";
    }

    echo " </table>";
    echo '<div align="center">';
    echo '<input type="submit" id="submit" name="submit" value="Submit" width="30" />';
    echo '</div>';
?>

这将创建一个表单,其中包含id1id2 ... id25dose1dose2 ... {{1等等。

我想读取这些输入框的值。像dose25这样的常规方法不起作用,因为这些元素是动态创建的。

即使是单击偶数的提交按钮也不会被触发。

下面的脚本不会产生任何输出。

var loc1 = $("#id1").val();

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

由于在Ajax调用之后动态创建表单DOM,您可以使用.on?

像:

$(document).on('submit' , '#shiftentry' , function(e) {
 e.preventDefault(); 
 alert("Submitted");
});

答案 1 :(得分:0)

对于提交按钮,您可以使用

触发它
$('#submit_id').on('click', function(){
    $('#shiftentry').send(function(e) {
        e.preventDefault(); 
        alert("Submitted");
    );
})

用于获取值。

$('#id1').val()

这应该可以正常工作,但请记住,在[,],...等id字段中不允许使用某些字符。等等。如果你不能在id字段中使用这个特殊字符,你可以使用。

$('input[name="value"]').val();

获取字段的值。

答案 2 :(得分:0)

您需要使用on()方法进行事件处理,因为表单是使用ajax调用创建的,稍后会添加。

如果稍后添加,它将不会绑定到您指定的submit事件处理程序。要将它与处理程序绑定,您需要使用jQuery中的on()

$(document).on('submit', '#shiftentry', function() {
    //Your code
});