我在尝试使用javascript提交表单后检查是否已按下表单类型按钮:
<script>
function DeleteIt(string){
var pattern = string.indexOf('_');
var prof_nr = string.substr(pattern+1);
var delete = confirm("Want to delete it?");
if( delete == true ){
document.forms['form'].submit();
}else{
alert('Cancel');
}
}
</script>
<form method="POST" name="form">
<input type="button" name="delete" value="Delete" id="prof_'.$row['code'].'" onclick="DeleteIt(this.id);">
</form>
if(isset($_POST['delete'])){
echo 'Pressed';
}
但它并没有遇到这种情况,尽管它已被按下了。 我不能使用提交类型,因为我已经在表单中有一个用于搜索字段。无论何时我键入内容并按Enter键,它会触发该功能,这就是我使用按钮的原因
答案 0 :(得分:2)
您在代码中使用了很多语言关键字作为变量名称,例如delete
,string
。
您不能使用编程语言的保留字作为您的 变量名称。
这是工作代码 -
<script type="text/javascript">
function DeleteIt(string1){
var pattern = string1.indexOf('_');
var prof_nr = string1.substr(pattern+1);
var delete1 = confirm("Want to delete it?");
if( delete1 == true ){
document.forms['form'].submit();
}else{
alert('Cancel');
}
}
</script>
<form method="POST" name="form">
<button name="delete" id="prof_'.$row['code'].'" onclick="DeleteIt(this.id);">delete</button>
</form>
<?php
if(isset($_POST['delete'])){
echo 'Pressed';
}
答案 1 :(得分:0)
我猜一个用于提交表单的按钮不会提交自己的值。
由于您不希望通过按Enter键提交表单,我的想法是添加一个隐藏字段,告诉您该怎么做。以下代码添加了一个名为 specialAction 的隐藏字段,通常设置为 save 。但是,按下删除按钮时,其值将更改为删除。在PHP中,您必须检查字段的值:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<script type="text/javascript">
function DeleteIt(id){
var pattern = id.indexOf('_');
var prof_nr = id.substr(pattern+1);
var deleteVar = confirm("Want to delete it?");
if( deleteVar == true ){
document.forms['form']['specialAction'].value = "delete";
document.forms['form'].submit();
}else{
alert('Cancel');
}
string
}
</script>
<form method="POST" name="form">
<input type="hidden" id="specialAction" name="specialAction" value="save">
<input type="text" name="testPurpose" value="Hit enter after focusing">
<input type="button" value="Delete" name="delete" id="prof_test" onclick="DeleteIt(this.id);">
</form>
<?php
if(isset($_POST['specialAction'])) echo $_POST['specialAction'];
?>
</body>
</html>
附注:不要将delete
用作变量名,因为它已被用作运算符。此外,您应该告诉浏览器使用<script type="text/javascript">
来解释JavaScript,而不仅仅是<script>
。