ValidForm Builder - 如何向addButton()对象添加自定义功能

时间:2014-01-10 14:35:50

标签: javascript php validform

我正在使用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

1 个答案:

答案 0 :(得分:0)

如果添加此元数组:

在您的PHP代码中:

array(
    "fieldname" => "cancel",
    "fieldid" => "form-cancel-button"
);

然后,您可以使用Javascript来处理此按钮的操作。由于您已经包含了用于ValidForm Builder的jQuery,因此您可以执行类似的操作:

在您的Javascript代码中:

$("#form-cancel-button")
    .off("click") // remove ValidForm's default handlers
    .on("click", function () {
        window.history.go(-1);
        return false;
    });

这应该可以解决问题。但在我看来,取消按钮不应该“回去”。取消按钮应该只清除表格并保留在当前页面上。

ValidForm Builder语法

顺便说一句,我看到你正在使用$ _POST从你发布的表单中获取数据。这是一个很大的禁忌。 ValidForm Builder允许您在将其用于应用程序的其余部分(如SQL查询)之前验证和清理用户输入。从ValidForm Builder中提取值(提交和验证时)的语法是:

$strFieldValue = $objForm->getValidField("fieldname")->getValue();

此时,您知道用户输入已经过ValidForm Builder验证,可以安全使用。