根据提交按钮更改隐藏输入字段的值

时间:2012-05-19 15:59:14

标签: javascript html tcl

我的页面中有多个表单,根据隐藏的输入值,会调用不同的部分。

现在我的问题是,我的一个表单中有2个输入按钮,根据我点击的按钮,我需要发送相应的隐藏输入类型,

例如,以下表格。 如果我点击生成密码按钮, 我希望目标值(隐藏输入字段的值)为generate_password

如果我点击锁定密码,我希望目标值为user_locked。这是我的代码。

    puts "<input type=\"hidden\" name=\"target\" value=\"user_locked\">"
    puts "<tr><td colspan='4'> New User request Review</td></tr>"
    puts "<tr><td><label for=\"full_name\"> Full Name </label></td>"
    puts "<td><input type=\"text\" value =\"$name\" name =\"full_name\" readonly=\"readonly\"></td>"

    puts "<tr><td><input type=\"button\" value=\"Generate Password\" onclick=\"if(confirm('Are you user you want to add this user?')){submit()};\"></td>"
    puts "<td><input type=\"button\" value=\"Lock User\" onclick=\"if(confirm('Are you user you want to add this user?')){submit()};\"></tr>"

基本上我根据隐藏的字段调用不同的函数,

set target "";      catch { set target $CGI_DATA(target) }
switch $target {
    "confirm"   { set id [UpdateUserData $id] }
    "user_locked    { DeleteUser $id }
    "user_confirmed"        { NewUserConfirmed}
    "newuser"   { NewUserReview }
    default     { }
}

2 个答案:

答案 0 :(得分:1)

在HTML中:

<input type="hidden" id="target" name="target" value="user_locked">

...

<input type="button" value="Generate Password" id="generate_button"/>
<input type="button" value="Lock User" id="lock_user"/>

在JS(jQuery)中:

$("#generate_password,#lock_user").click(function(){
    ("#target").val($(this).attr("id"));
    $("form.myform").submit();
});

您可以更改这些元素的ID和类,但要确保JS和HTML匹配。

答案 1 :(得分:1)

您的onclick事件的代码可以在确认时执行,而不是仅仅提交表单。如果你使用jQuery:

if(confirm('Are you user you want to add this user?')){
    $("input[name=target]").val('Generate password');
    submit();
}

另一个输入按钮的那个应该非常相似。

您也可以通过某种方式了解按下哪个按钮以另一种方式提交表单。如果我没记错的话,在PHP中至少会在_REQUEST变量中传递按钮的名称。