Включение/отключение кнопки onsen

я хочу включить/отключить кнопки onsen при нажатии другой кнопки. я использовал следующий код для этого, но он не работал для меня. нужны предложения/исправления для того же самого.

 <ons-button id="save" disabled="true">Save</ons-button>
 <ons-button id="edit" ng-click ="edit_click()">Edit</ons-button>
 <ons-button id="cancel" disabled="true">Cancel</ons-button>

JavaScript:

function edit_click(){ 
document.getElementById("save").disabled="false";
document.getElementById("cancel").disabled="false";
}

person Mihir Patel    schedule 22.01.2015    source источник
comment
"false" !== false :-) Вместо этого нужно elem.disabled = false; (без кавычек)   -  person techfoobar    schedule 22.01.2015
comment
Использование false без кавычек также не сработало.   -  person Mihir Patel    schedule 22.01.2015


Ответы (4)


Вы можете использовать директиву ngAttrDisabled для динамического отключения кнопок.

<ons-button ng-attr-disabled="{{ disableButton }}">Click me!</ons-button>
<input type="checkbox" ng-model="disableButton">

К сожалению, ngDisabled не работает в текущей версии пользовательского интерфейса Onsen для тега <ons-button>.

person Andreas Argelius    schedule 23.01.2015
comment
это действительно сработало, но не послужило моей цели. Я хочу ту же операцию при нажатии другой кнопки onsen. Не знаю, как это сделать. - person Mihir Patel; 27.01.2015
comment
Просто выполните ng-click="disableButton = !disableButton", чтобы отключить его при нажатии кнопки. - person Andreas Argelius; 27.01.2015
comment
здорово !! оно работает. но тем не менее, это ограничивает событие щелчка только 1 операцией. что, если я хочу выполнить некоторые другие задачи в рамках одного и того же события click? - person Mihir Patel; 27.01.2015
comment
Вы должны написать контроллер. Пожалуйста, посмотрите документы AngularJS. - person Andreas Argelius; 27.01.2015
comment
готово !! disableButton = !disableButton трюк сделал всю мою работу. благодаря тонну ! :-) - person Mihir Patel; 27.01.2015

Вы оцениваете "ложное" значение string, а не значение boolean...

function edit_click(){ 
    document.getElementById("save").disabled=false;
    document.getElementById("cancel").disabled=false;
}
person Jordi Castilla    schedule 22.01.2015

В документе angularjs есть правильный пример с директивой ng-disable: https://docs.angularjs.org/api/ng/directive/ngDisabled

Вы можете попробовать аналогичный с онсэном:

<input type="checkbox" ng-model="checked"><br/>
<ons-button ng-model="button" disabled="{{checked}}">Button</button>
person Harry Urcen    schedule 22.01.2015
comment
это руководство предназначено для простой HTML-кнопки. Я хочу переключить кнопки onsen. - person Mihir Patel; 27.01.2015
comment
Посмотрите на пример кода, который я привожу выше. Это для кнопки onsen. Я проверяю это перед публикацией здесь. Это работает хорошо... - person Harry Urcen; 28.01.2015

Если вы используете angular, это легко сделать и надежно. Следующий код работал у меня, проверьте его =)

html

<ons-button modifier="outline" style="width: 100%; ng-disabled="isDisable">Print</ons-button>

<ons-button modifier="outline" style="width: 100%; ng-disabled="isDisable">Email</ons-button>

JS

//to disable
$scope.isDisable = true;

//to enable
$scope.isDisable = false;
person Charitha Goonewardena    schedule 03.06.2016