我在这里有两种形式,第一种是选择下拉选择,它在发布时会生成另一种形式,并根据所选数字创建一个金额输入框。然后,第二种形式将来自输入框的数据放入2个数组中。所有这些都可以正常运行,但是我正在尝试向第二个表单上的“提交”按钮添加额外的功能。我创建了一个函数“ showcontet()”来显示和隐藏ID为“ table”的div中的内容。当在窗体外部的按钮上使用时,此方法非常有效。在表单内的“提交”按钮上使用时,您可以看到内容约1秒钟,然后内容再次消失。
<head>
<script type="text/javascript">
showcontent = function(){
var content = document.getElementById('tabl');
content.style.display = 'inline';
}
</script>
<?php
$userkey = array();
$userval = array();
$usernum = $_POST['usernum'];
$total = 0;
?>
<form action='MYPIE.PHP' method='POST'>
HOW MANY SECTIONS?
<select name="usernum" value="<?php echo $usernum;?>">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select>
<input type="submit" name="submitnum" value="submit selection" />
</form>
<form action='MYPIE.PHP' method='POST'>
<?php
for ($i=1; $i<$usernum+1; $i++){
echo '<input type="hidden" value="' .$usernum.'" name="usernum" />';
echo "<br>insert key: <input name='key".$i."' value='".$userkey[$i]."'> insert value: <input name='val".$i."' >";
$userkey[$i] = $_POST["key".$i];
$userval[$i] = $_POST["val".$i];
}
?>
</br>
<input type="submit" value="submit" name="submit keys" onclick="showcontent()" />
</form>
</table>
<div id="tabl" style="display:none;">
content
</div>
不好意思,我很抱歉,谢谢您的帮助
最佳答案
使您的第二个按钮不是“提交”按钮,而是常规的“按钮”
否则将触发表单的提交...
要么
在表单“ onsubmit”事件上设置“ showcontent()”函数,并让该函数返回false:
onsubmit="return showcontent()"
function showcontent(){
var content = document.getElementById('tabl');
content.style.display = 'inline';
$.ajax({
type: "POST",
url: "MYPIE.PHP",
data: { usernum: $("select[name='usernum'] option:selected").val() }
}).done(function() {
alert('data posted');
});
return false;
}
关于javascript - 表单仅提交运行中的Javascript函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11362166/