質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Q&A

解決済

1回答

815閲覧

onsen UI のselectを設定をしたい

kumakake

総合スコア42

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

0グッド

0クリップ

投稿2017/11/27 08:48

ons-selectを使用して作成したselect boxに初期項目の設定をしたいのですが、方法がわかりません。

【html】
<ons-select id="cyueki-sel" ng-model="cyueki_sel" ng-change="page.editSelects()">

<option ng-repeat="item in items" value="{{ item.id }}">{{ item.name }}</option> </ons-select>

これにidの内容に合致したものに設定をさせたい

【JS】
下記を試してみました。
1)getElement
var elem = document.getElementById('cyueki-sel');
var elems = elem.options;
elems[2].selected = true;

先頭の項目にセットされてしまいました。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ng-repeatなどを使ってるということで、OnsenUI+Angular1を利用してる想定で

HTML

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 6<link rel="stylesheet" type="text/css" href="https://unpkg.com/onsenui/css/onsenui.css"> 7<link rel="stylesheet" type="text/css" href="https://unpkg.com/onsenui/css/onsen-css-components.css"> 8 9<script src="https://unpkg.com/onsenui/js/onsenui.js"></script> 10<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script> 11<script src="https://unpkg.com/onsenui/js/angular-onsenui.js"></script> 12<script> 13// OnsenUI準備完了 14ons.bootstrap() 15 .controller('PageController', function() { 16 this.selectedModifier = 'basic'; 17 this.optionList = [ 18 {'id': 'basic', 'name': 'ベーシック'}, 19 {'id': 'material', 'name': 'マテリアル'}, 20 {'id': 'underbar', 'name': 'アンダーバー'}, 21 ]; 22 this.editSelects = function() { 23 alert("Changed :)" + this.selectedModifier); 24 document.getElementById('choose-sel').removeAttribute('modifier'); 25 if (this.selectedModifier == 'material' || this.selectedModifier == 'underbar') { 26 document.getElementById('choose-sel').setAttribute('modifier', this.selectedModifier); 27 } 28 } 29 this.click = function() { 30 // モデルに値を入れると選択肢も変わる・・・がng-changeは呼ばれないので呼び出し先を直接実行 31 this.selectedModifier = 'material'; 32 this.editSelects(); 33 } 34}); 35</script> 36</head> 37<body> 38 39<ons-page ng-controller="PageController as page"> 40 <ons-toolbar><div class="center">Select Input</div></ons-toolbar> 41 <div style="margin: 10px"> 42 <p>Choose which select input you want to see:<p> 43 <ons-select 44 ng-model="page.selectedModifier" 45 id="choose-sel" 46 ng-change="page.editSelects()" 47 > 48 <option ng-repeat="option in page.optionList" value="{{option.id}}" ng-selected="{{page.selectedModifier == option.id}}">{{option.name}}</option> 49 </ons-select> 50 <p>Modifier <strong>{{ page.selectedModifier }}</strong> looks great.</p> 51 <button ng-click="page.click()">ボタン</button> 52 </div> 53</ons-page> 54 55</body> 56</html>

※Chromeで確認
※OnsenUI + Angular1の組み合わせの利用はしたこと無いのでちょいちょいお作法的に間違ってるかも

投稿2017/11/28 07:12

rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumakake

2017/11/29 02:23

ありがとうございます! サポートにも聞いてみたのですが、ラッピングして動かない動作が結構あるようですね(^^; 試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問