繁体   English   中英

阿贾克斯没有在表单标签内工作

[英]ajax didnt work inside form tag

没有标签时,我的Ajax代码运行良好。.但是我需要表单标签,我该怎么办?..这是我的代码。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
function injury_nature(){
$.ajax({
         type:"POST",
         url:"ajax_details.php",
         data:{
             allvals:$("#nature_id").val(),
             },
         success:function(msg){
             $("#div").html(msg);
             }});
}
</script>
<form method="post" action="process.php">
<table border="2">
<tr><th colspan="2">Injury Details</th></tr>
<tr><td>
<select id="nature_id" name="injury_nature" onChange="injury_nature()">
<option><--select--></option>
<option value="1">Musculoskeletal Injuries</option>
<option value="2">Soft Tissue Injuries</option>
<option value="3">Illnesses</option>
<option value="4">Other Injuries</option>
</select>
</td>
<td><div id="div"></div></td></tr>
</table>

当有表单标签时,出现此错误:

TypeError: injury_nature is not a function
injury_nature()

请帮助我,非常感谢。

既然您使用的是jquery,为什么不只使用change函数呢?

<script>
$(document).ready(function(){
    $("#nature_id").change(function(){
        $.ajax({
         type:"POST",
         url:"ajax_details.php",
         data:{
             allvals:$("#nature_id").val(),
             },
         success:function(msg){
             $("#div").html(msg);
             }});
    });
});
</script>

然后只需删除onchange标签上的onchange

<select id="nature_id" name="injury_nature" >

那是因为你具有相同名称的元素injury_nature的功能。

只需将函数重命名为injury_nature_change就可以了

<select id="nature_id" name="injury_nature" onChange="injury_nature_change()">

然后

function injury_nature_change(){
$.ajax({
         type:"POST",
         url:"ajax_details.php",
         data:{
             allvals:$("#nature_id").val(),
             },
         success:function(msg){
             $("#div").html(msg);
             }});
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM