requirejs.config({ // Path mappings for the logical module names paths: { 'knockout': '//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min', 'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min', "jqueryui": "//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui", "jqueryui-amd": "//cdn.rawgit.com/jquery/jquery-ui/1-11-stable/ui", "promise": "//cdn.rawgit.com/components/es6-promise/c95149ffaa2e8162601c57d4282362eac84f929b/promise.min", "hammerjs": "//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.4/hammer.min", "ojdnd": "//cdn.rawgit.com/oracle/oraclejet/49fcbbde7c8e178a3a21625d44485536e3ad1aaf/dist/js/libs/dnd-polyfill/dnd-polyfill-1.0.0.min", "ojs": "//cdn.rawgit.com/oracle/oraclejet/49fcbbde7c8e178a3a21625d44485536e3ad1aaf/dist/js/libs/oj/debug", "ojL10n": "//cdn.rawgit.com/oracle/oraclejet/49fcbbde7c8e178a3a21625d44485536e3ad1aaf/dist/js/libs/oj/ojL10n", "ojtranslations": "//cdn.rawgit.com/oracle/oraclejet/49fcbbde7c8e178a3a21625d44485536e3ad1aaf/dist/js/libs/oj/resources", "text": "//cdnjs.cloudflare.com/ajax/libs/require-text/2.0.12/text.min", "signals": "//cdnjs.cloudflare.com/ajax/libs/js-signals/1.0.0/js-signals.min", }, // Shim configurations for modules that do not expose AMD shim: { 'jqueryui-amd': { exports: "$", deps: ['jquery'] }, 'jquery': { exports: ['jQuery', '$'] } }, config: { ojL10n: { merge: { //'ojtranslations/nls/ojtranslations': 'resources/nls/menu' // The following addes en-US to the r.js bundle //'ojtranslations/nls/ojtranslations': '../../oj/resources/nls/en-US/localeElements' } } } }); require(['knockout', 'ojs/ojcore', 'jquery', 'ojs/ojknockout', 'ojs/ojinputtext' ], function(ko, oj, $) { 'use strict'; window.$ = $; var ViewModel = function() { var self = this; self.value = ko.observable(); }; ko.applyBindings(new ViewModel()); // after the JET input exists, manually add a trailing DOM element we can add a click handler to // http://stackoverflow.com/a/8756524/1388577 $('.birthday-input').append('<i class="birthday-icon fa fa-birthday-cake"></i>'); // add the click function to the new element $(".birthday-icon").click(function(){alert("today is your birthday");}); });
<div class="content-container"> <label for="text-input">ojInputText component</label> <input id="text-input" type="text" data-bind="ojComponent: {component: 'ojInputText', value: value, rootAttributes: {class: 'birthday-input'}}"/> </div>
@import url('//cdn.rawgit.com/oracle/oraclejet/49fcbbde7c8e178a3a21625d44485536e3ad1aaf/dist/css/alta/oj-alta.css'); @import url('//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css'); .content-container { margin: 10px; } /* icon CSS here */ /*.birthday-icon:after { font: normal normal normal 14px/1 FontAwesome; content: "\f1fd"; margin: 0 10px; }*/ .birthday-icon { cursor: pointer; } .birthday-icon:before { margin: 0 10px; } .birthday-input input { border: none; flex: 1; } .oj-inputtext.birthday-input { display: flex; flex-flow: row nowrap; align-items: center; border: 1px solid #dfe4e7; background-color: #fcfdfe; }