У меня есть 2 парных поля ввода, и мне нужно переключаться между ними (если одно включено, другое должно быть отключено).
Я понятия не имею, как подойти к этому, есть идеи?
У меня есть 2 парных поля ввода, и мне нужно переключаться между ними (если одно включено, другое должно быть отключено).
Я понятия не имею, как подойти к этому, есть идеи?
Пример: item1
включен, item2
отключен
<input type="text" id="item1">
<input type="text" id="item2" disabled>
<button id="switch">Click here to toggle</button>
Это будет переключать элементы при нажатии какого-либо переключателя. Используйте его на том, что его переключает, то есть на кнопке выше:
$("#switch").on("click", function()
{
$("#item1").prop("disabled", !$("#item1").prop("disabled"));
$("#item2").prop("disabled", !$("#item2").prop("disabled"));
});
Если вы действительно хотите убедиться, что они противоположны;
$("#switch").on("click", function()
{
var toggle = $("#item1").prop("disabled");
$("#item1").prop("disabled", !toggle );
$("#item2").prop("disabled", toggle ); // item2 will always be the opposite of item1
});
$("#item1").focusin(function() { $("#item2").prop("disabled", "disabled"); });
-- api.jquery.com/focusout
- person Smamatti; 31.08.2012
function toggleDisable()
, и когда в вашем коде произойдет отключение, вы также можете вызвать эту функцию. Я полагаю, что есть где-то, где один из двух отключается
- person Richard de Wit; 31.08.2012
Я повозился с проблемой и придумал этот скрипт:
inputFields = $("#group").find("input");
$("#toggleFields").on("click", function(){
inputFields.each(toggleElement);
});
function toggleElement(index, element) {
element.disabled = !element.disabled;
//idea from: http://stackoverflow.com/a/4702086/1063730
}
Если вы хотите, чтобы причиной переключения было другое событие, вам нужно всего лишь заменить $("#toggleFields").on("click")
вашими потребностями.
это дает включенный ввод:
<input type="button" value="Button1" />
<input type="button" value="Button2" />
<input type="text" value="Text1" />
<input type="checkbox" value="CheckBox1" />
<input type="radio" value="Radio1" />
<input type="submit" value="Submit1" />
<input type="reset" value="Reset1" />
$(document).ready(function() {
var id = "";
// Test
$('input').attr("disabled", "disabled");
// Remove attr disabled from text to try code
$('input[type="text"]').removeAttr("disabled");
// Check for attr != disabled here
$('input').each(function () {
if ($(this).attr("disabled") != "disabled")
{ id = $(this).get(); }
});
// Found
alert($(id).val());
});
это отключает все входы, кроме флажка:
<input type="button" value="Button1" disabled="disabled" />
<input type="button" value="Button2" disabled="disabled" />
<input type="text" value="Text1" disabled="disabled" />
<input type="checkbox" value="CheckBox1" />
<input type="radio" value="Radio1" disabled="disabled" />
<input type="submit" value="Submit1" disabled="disabled" />
<input type="reset" value="Reset1" disabled="disabled" />
$(document).ready(function() {
var id = "";
// Check for attr != disabled here
$('input').each(function () {
if ($(this).attr("disabled") != "disabled")
{ id = $(this).get(); }
});
// Found
alert($(id).val());
// Make sure all disabled but this
$('input').attr("disabled", "disabled");
$(id).removeAttr("disabled");
});
и, наконец, переключаться между двумя входами:
$(document).ready(function() {
$('input').click(function () {
var id = $(this).get();
toggleButtons(id);
});
function toggleButtons(id){
// Check for attr != disabled here
$('input').removeAttr("disabled");
$(id).attr("disabled","disabled");
}
});
Просто как это. также следит за тем, чтобы был включен только истинный.