I have made a keypad with angularjs for a client. It is working correctly,
Here is my angularjs function that handles to pressing a button:
$scope.pressButton = function(button) {
var dialpadInput = document.getElementById("dialpadText"),
dialpadText = dialpadInput.value,
dialpadCursor = dialpadInput.selectionStart,
dialpadFirstPart, dialpadSecondPart, strLength;
dialpadFirstPart = dialpadText.substr(0, dialpadCursor);
dialpadSecondPart = dialpadText.substr(Math.abs(dialpadCursor));
dialpadText = dialpadFirstPart + button.number + dialpadSecondPart;
document.getElementById("dialpadText").value = dialpadText;
strLength = dialpadText.length * 2;
dialpadInput.focus();
dialpadInput.setSelectionRange(strLength, strLength);
$scope.dialpadTextEntered();
};
<div id="lightbox-dialpad">
<div class="lightbox-content-column lightbox-dialpad-content">
<div class="dialpad">
<div class="dialpad-top">
<input type="text" id="dialpadText" call-from-dialpad="startAudioCall()" ng-model="dialpadText" ng-change="dialpadTextEntered()" placeholder="{{languageData.DIALPAD.PLACEHOLDER}}" autofocus/>
<div class="icon-dialpad-backspace" ng-click="backspaceNumber()"></div>
</div>
<ul class="dialpad-table">
<li ng-repeat="button in buttons" class="dialpad-button" ng-click="pressButton(button)" ng-mousedown='mouseDown()' ng-mouseup="mouseUp()">
<div class="number">{{button.number}}</div>
<div class="letters">{{button.letters}}</div>
</li>
</ul>
<div class="clearfix"></div>
<div class="row dialpad-bottom-buttons">
<span ng-if="$root.isMicrophonePluggedIn" class="action-button icon-audio-call-button icon-circle" ng-click="startAudioCall()"></span>
<span ng-if="$root.isMicrophonePluggedIn && $root.isCameraPluggedIn" class="action-button icon-video-call-button icon-circle" ng-click="startVideoCall()"></span>
</div>
</div>
</div>
<system-message add-class="lightbox-system-message error-message-container" warning="true" message="message" open="open"></system-message>
</div>
I couldn't find any answer to my question yet, so I mapped "00" to "+" sign. That did work well too.