我有以下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>';
?>
这将创建一个表单,其中包含id1
,id2
... id25
,dose1
,dose2
... {{1等等。
我想读取这些输入框的值。像dose25
这样的常规方法不起作用,因为这些元素是动态创建的。
即使是单击偶数的提交按钮也不会被触发。
下面的脚本不会产生任何输出。
var loc1 = $("#id1").val();
有什么建议吗?
答案 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
});