java - 下拉更改时基于 Jquery Ajax 调用服务器端方法启用/禁用复选框

标签 java jquery ajax checkbox drop-down-menu

寻找一种在下拉选择更改时调用服务器端方法(Java)的方法,并根据服务器输出(真或假),启用或禁用几个复选框。如果有人可以提供相同的建议,我将不胜感激。

最佳答案

我编写了一个快速示例来向您展示如何完成此操作。首先,您需要设置 Java 应用程序以允许 ajax 调用。 java 应用程序需要接受单个 post 变量名称 selected 作为输入,它是下拉菜单中所选选项的值。然后,java 应用程序也需要返回格式类似的 json 字符串:

{
    "disabled":[
        "1",
        "3",
        "5"
    ]
}

1、3 和 5 代表您想要禁用的复选框的 ID。这些可以是任何复选框的任何 ID。如果它不在该数组中,则它默认设置为启用。

HTML:

<select id="choiceSelector">
    <option value="1">Something 1</option>
    <option value="2">Something 2</option>
</select>

<br/><br/>
<div id="changingCheckboxes">
    <input type="checkbox" name="" id="1"><br/>
    <input type="checkbox" name="" id="2"><br/>
    <input type="checkbox" name="" id="3"><br/>
    <input type="checkbox" name="" id="4"><br/>
    <input type="checkbox" name="" id="5"><br/>
    <input type="checkbox" name="" id="6">
</div>​

Javascript/jquery

function UpdateCheckBoxStatus ()
{
    var CurrentChoice = $('#choiceSelector').val();

    $.ajax({
        url: "####YOUR JAVA APP URL####",
        data: { "selected": CurrentChoice },
        type: "post",
        dataType: "json",

        success: function (data)
        {
            SetCheckbox($('#changingCheckboxes').children("input:[type='checkbox']"), true);
            $.each(data.disabled, function ()
            {
               SetCheckbox($('#changingCheckboxes #' + this), false);
            });
        }
    });

}

/// Sets the checkbox to enabled or disabled
/// @param th Jquery reference of one or more checkboxes
/// @param usable True/False if the checkbox is enabled/disabled
function SetCheckbox (th, usable)
{
    if (usable)
        th.removeAttr("disabled");
    else if (!usable)
        th.attr("disabled", true);
}


$(function ()
{
    $('#choiceSelector').change(UpdateCheckBoxStatus);
    UpdateCheckBoxStatus(); //run for page load
});

另外,这是它的jsfiddle:http://jsfiddle.net/bpstw/1/

希望有帮助。

关于java - 下拉更改时基于 Jquery Ajax 调用服务器端方法启用/禁用复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9652061/

相关文章:

javascript - xwiki REST ajax调用错误

java - 链接依赖库时JNI "The specified procedure could not be found"

java - 将 ant 项目转换为 Eclipse 项目的任何标准方法?

javascript - 成功的 XMLHttprequest 表单 POST 上的操作未触发,但我确实收到了电子邮件

jquery - 使用 CSS bootstrap 的垂直导航栏

jquery - 窗口加载时 div 元素的 css3 变换透视图

javascript - react : Event-triggered Ajax call in componentDidUpdate or render creates infinite loop

java - 如何使用 Mockito 通过私有(private)方法调用测试 void 方法

java - 有没有java包可以画简单的几何形状?

javascript - JQuery Are you Sure + Rails Nav 被忽略