Я привел быстрый пример, чтобы показать вам, как это будет сделано.Сначала вам нужно настроить приложение Java, чтобы разрешить вызовы AJAX.Java-приложение должно будет принять в качестве входных данных одно переменное имя сообщения selected
, которое является значением выбранной опции в раскрывающемся меню.Затем java-приложение должно будет вернуть строку json, отформатированную аналогично:
{
"disabled":[
"1",
"3",
"5"
]
}
1, 3 и 5 представляют идентификаторы флажков, которые вы хотели бы отключить.Это могут быть любые идентификаторы любых флажков.Если его нет в этом массиве, по умолчанию будет включен.
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/
Надеюсь, что поможет.