- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ValidForm Builder用 PHP 构建我的表单。
我在 ValidForm 上有 2 个自定义按钮,如下面的代码所示。这两个按钮都以导致表单验证发生的方式提交表单。
我正在寻找使“取消”按钮返回页面的语法,类似于浏览器后退按钮的工作方式 onclick="window.history.go(-1)"
或使后退按钮绕过表单验证。
源代码:
// SUBMIT BUTTONS
$objGroup = $objForm->addButton('Insert User Group', array('fieldname' => 'action'));
$objGroup = $objForm->addButton('Cancel', array('fieldname' => 'cancel'));
// END USER GROUP UPDATE SECTION
// FORM DATA HANDLER
if ($objForm->isSubmitted() && $objForm->isValid()) {
require_once(CORE_SQL . 'users_userGroups.php');
if (strpos(strtolower($_POST['action']), 'insert') !== false) insertUserGroup();
elseif (strpos(strtolower($_POST['action']), 'update') !== false) updateUserGroup($_POST['userGroupID']);
elseif (strpos(strtolower($_POST['action']), 'delete') !== false) deleteUserGroup($_POST['userGroupID']);
header('Location: ' . PATH_USERS . 'userGroups.html');
exit;
}
else {
$strOutput = $objForm->toHtml();
}
可以看到取消按钮 onClick 行为的屏幕截图 link
最佳答案
如果你添加这个元数组:
array(
"fieldname" => "cancel",
"fieldid" => "form-cancel-button"
);
然后您可以使用 Javascript 来处理此按钮的操作。由于您已经包含了 jQuery 以便与 ValidForm Builder 一起使用,您可以像这样执行类似的操作:
$("#form-cancel-button")
.off("click") // remove ValidForm's default handlers
.on("click", function () {
window.history.go(-1);
return false;
});
这应该可以解决问题。但在我看来,取消按钮不应该“返回”。取消按钮应该只是清除表单并停留在当前页面上。
顺便说一下,我看到您正在使用 $_POST 从您发布的表单中获取数据。这是一个很大的禁忌。 ValidForm Builder 使您能够在将用户输入用于应用程序的其余部分(如 SQL 查询)之前验证和清理用户输入。从 ValidForm Builder 中提取值的语法(在提交和验证时)是这样的:
$strFieldValue = $objForm->getValidField("fieldname")->getValue();
这样,您就知道用户输入已经过 ValidForm Builder 验证并且可以安全使用。
关于javascript - ValidForm Builder - 如何向 addButton() 对象添加自定义功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046990/
如果在表单字段中输入 1-11 个字符之间的任何内容,下面的代码将正确阻止提交表单。 但是,一旦输入任何类型的 12 个字符,表单字段就会通过验证。 $objGroup->addField('ph
我正在使用 ValidForm Builder用 PHP 构建我的表单。 我在 ValidForm 上有 2 个自定义按钮,如下面的代码所示。这两个按钮都以导致表单验证发生的方式提交表单。 我正在寻找
我是一名优秀的程序员,十分优秀!