I have a web app that's doing a mailto action on a click action. It seems to work on all platforms, except for android in chrome. It even works in the developer console (desktop) with android devices. The button is clickable, but no actions occur on android devices. Thoughts? Thanks!
<form role="form" action="MAILTO:info#somewebsite.com" method="post" enctype="text/plain">
<div class="col-lg-6 col-xs-2">
<div class="form-group">
<label for="InputName">Your Name</label>
<div class="input-group">
<input type="text" class="form-control" name="Name" id="InputName" placeholder="Enter Name" required>
<span class="input-group-addon"><i class="form-control-feedback"></i></span></div>
</div>
<div class="form-group">
<label for="InputEmail">Your Email</label>
<div class="input-group">
<input type="email" class="form-control" id="InputEmail" name="Email" placeholder="Enter Email" required >
<span class="input-group-addon"><i class="form-control-feedback"></i></span></div>
</div>
<div class="form-group">
<label for="InputMessage">Message</label>
<div class="input-group"
>
<textarea name="Message" id="InputMessage" class="form-control" rows="5" required></textarea>
<span class="input-group-addon"><i class="form-control-feedback"></i></span></div>
</div>
<input type="submit" id="submit" value="Submit" class="btn btn-info pull-right">
</div>
</form>
Related
When i open a "popover" , it displays an input window.
After opening, clicking anywhere on the screen causes the keyboard to open:
Keyboard opened when i clicked outside the popover element.
PopOver Component Html
<ion-content>
<ion-icon class="close" name="close-sharp" (click)="closePopUp()"></ion-icon>
<p>{{title}}</p>
<!-- <ion-icon name="information-circle-outline" (click)="LoadInfoPopUp()"></ion-icon> -->
<div class="wrap-input" *ngIf="inputs?.weight">
<input class="input" [(ngModel)]="inputValues.weight" type="number" name="weight" placeholder="Enter Body Weight (Kg)">
</div>
<div class="wrap-input" *ngIf="inputs?.height">
<input class="input" [(ngModel)]="inputValues.height" type="number" name="height" placeholder="Enter Height (cm)">
</div>
<div class="wrap-input" *ngIf="inputs?.age">
<input class="input" [(ngModel)]="inputValues.age" type="number" name="age" placeholder="Enter Age">
</div>
<div class="radio-button" *ngIf="inputs?.gender">
<label class="custom-radio-btn">
<input type="radio" name="gender" [(ngModel)]="inputValues.gender" value="Male">
<span class="checkmark"></span>
</label>
<label> Male </label>
<label class="custom-radio-btn" *ngIf="inputs?.gender">
<input type="radio" name="gender" [(ngModel)]="inputValues.gender" value="Female">
<span class="checkmark"></span>
</label>
<label> Female </label>
</div>
<div class="wrap-input" *ngIf="inputs?.fatPercent">
<input class="input" type="number" name="fatpercent" [(ngModel)]="inputValues.fatPercent" placeholder="Enter Estimated Fat % ">
</div>
<div class="wrap-input" *ngIf="inputs?.neck">
<input class="input" type="number" name="neck" [(ngModel)]="inputValues.neck" placeholder="Enter Neck (cm) ">
</div>
<div class="wrap-input" *ngIf="inputs?.waist">
<input class="input" type="number" name="waist" [(ngModel)]="inputValues.waist" placeholder="Enter Waist (cm)">
</div>
<div class="wrap-input" *ngIf="inputs?.hip">
<input class="input" type="number" name="hip" [(ngModel)]="inputValues.hip" placeholder="Enter hip (cm)">
</div>
<div class="wrap-input" *ngIf="inputs?.shoulder">
<input class="input" type="number" name="shoulder" [(ngModel)]="inputValues.shoulder" placeholder="Enter Shoulder (inches)">
</div>
<div class="drop-down" *ngIf="inputs?.workoutDays">
<label>Select Workout Days/Week</label>
<select class="box" ngDefaultControl [(ngModel)]="inputValues.workoutDays" name="workoutDays">
<option *ngFor="let item of workdayList" [ngValue]="item.value">{{item.name}}</option>
</select>
</div>
<div class="drop-down" *ngIf="inputs?.activity">
<label>Select How Active You Are</label>
<select class="box" ngDefaultControl [(ngModel)]="inputValues.activity" name="activity">
<option *ngFor="let item of activityList" [ngValue]="item.value">{{item.name}}</option>
</select>
</div>
<div class="drop-down" *ngIf="inputs?.weightLossRate">
<label>Rate Of Weight Loss %</label>
<SELECT class="box" ngDefaultControl [(ngModel)]="inputValues.weightLossRate" name="weightLossRate">
<option *ngFor="let value of weightMeter" [ngValue]="value">{{value}}</option>
</SELECT>
</div>
<div class="drop-down" *ngIf="inputs?.weightGainRate">
<label>Rate Of Weight Gain %</label>
<SELECT class="box" ngDefaultControl [(ngModel)]="inputValues.weightGainRate" name="weightGainRate">
<option *ngFor="let value of weightMeter" [ngValue]="value">{{value}}</option>
</SELECT>
</div>
<div class="wrap-input" *ngIf="inputs?.steps">
<input class="input" type="number" name="step" [(ngModel)]="inputValues.steps" placeholder="Enter Steps Walked">
</div>
<div class="radio-button" *ngIf="inputs?.body">
<label class="custom-radio-btn">
<input type="radio" name="body" value="Upper Body" [(ngModel)]="inputValues.body">
<span class="checkmark"></span>
</label>
<label> Upper Body </label>
<label class="custom-radio-btn" *ngIf="inputs?.gender">
<input type="radio" name="body" value="Lower Body" [(ngModel)]="inputValues.body">
<span class="checkmark"></span>
</label>
<label> Lower Body </label>
</div>
<div class="wrap-input" *ngIf="inputs?.weightLifted">
<input class="input" type="number" name="weightLifted" [(ngModel)]="inputValues.weightLifted" placeholder="Weight Lifted For 2-5">
</div>
<div class="wrap-input" *ngIf="inputs?.duration">
<input class="input" type="number" name="duration" [(ngModel)]="inputValues.duration" placeholder="Enter Duration (min)">
</div>
<div class="radio-button" *ngIf="inputs?.intensity">
<label class="custom-radio-btn">
<input type="radio" [(ngModel)]="inputValues.intensity" value="Low" name="intensity">
<span class="checkmark"></span>
</label>
<label> Low </label>
<label class="custom-radio-btn" >
<input type="radio" [(ngModel)]="inputValues.intensity" value="Moderate" name="intensity">
<span class="checkmark"></span>
</label>
<label> Moderate </label>
<label class="custom-radio-btn" >
<input type="radio" [(ngModel)]="inputValues.intensity" value="High" name="intensity">
<span class="checkmark"></span>
</label>
<label> High </label>
</div>
<ion-button id="Calculate" (click)="calculateResult()">Calculate</ion-button>
<hr>
<p *ngIf="result">{{result}}</p>
</ion-content>
Caller Method:
openToolWindow(tool) {
let clickedTool = this.toolDictionary[tool]
this.popCrtl.create(
{ component: InputWindowComponent,
showBackdrop:false,
componentProps: {'toolName':clickedTool.toolName, 'inputs':clickedTool.inputs},
cssClass: 'custom-popover',
backdropDismiss: false
}
).then((element) => {
element.present();
})
}
CSS associated with it:
.custom-popover .popover-content {
width: 80%;
}
Can someone please suggest a way? i already tried :
if (document.activeElement === document.body) {
this.keyboard.Hide()
}
But the event Listerner method is never called.
Can anyone suggest any solutions?
I am using a simple form to send an email but on my device the click is not firing anything.
Here is my code:
<form class="form-inline" action="mailto:user#gmail.com?subject=oggetto" method="post" enctype="text/plain">
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="name" class="sr-only">Nome e Cognome</label>
<input type="text" name="name" class="form-control" id="name" placeholder="Nome e Cognome">
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="bambini" class="sr-only">Numero bambini</label>
<input type="name" name="bambini" class="form-control" id="numBambini" placeholder="Numero di bambini">
</div>
</div>
<div class="col-md-4 col-sm-4">
<input type="submit" class="btn btn-default btn-block">
</input>
</div>
</form>
I tried also with
the tag button type="submit"
with no luck.
My code is working fine on Chrome desktop but on my samsung device works only with Samsung Internet and not with Chrome (I also got the same with a samsung p20).
Any idea on how to fix it?
Thanks
I am testing a login view on a Samsung galaxy young pro duos which has its own physical keyboard and Android 2.3.6 version but I can't submit the form when I use $cordovaKeyboard in the controller. When I remove $cordovaKeyboard the input does not enter any text.
Here is the controller:
.controller('loginCtrl', function($scope, $http, $location, $ionicLoading, $cordovaKeyboard) {
$scope.enableBackButton = false;
$scope.loginData = {};
$scope.tryLogin = function(loginData) {
alert('Test OK');
};})
And the view:
<ion-view title="HKI-CI Projet Femmes Enceintes" hide-back-button="true">
<div class="bar bar-subheader bar-calm">
<h2 class="title">IDENTIFICATION</h2>
</div>
<ion-content class="padding has-header has-subheader">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Identifiant" ng-model="loginData.identifiant">
</label>
<label class="item item-input">
<input type="password" placeholder="Mot de passe" ng-model="loginData.motDePasse">
</label>
</div>
</ion-content>
<ion-footer-bar>
<div class="button-bar">
<button class="button button-royal ion-checkmark" ng-click="tryLogin(loginData)"> CONNEXION</button>
</div>
</ion-footer-bar></ion-view>
Maybe I miss something so please help me.
i'm developing app using intel XDK new environment by using jquery mobile.
here is my code for a form for submitting data.
<div data-role="content">
<form method="post" action="http://testwebpage.php">
<div data-role="fieldcontain">
<label class="formLabel" style="width: 250px;">
<span class="formTitle">First Name:</span>
<input type="text" name="fname1" placeholder="Type first name here..." data-="" mini="true" data-inline="true" value="">
</label>
</div>
<div data-role="fieldcontain">
<label class="formLabel" style="width: 250px;">
<span class="formTitle">Last Name:</span>
<input type="text" name="lname1" placeholder="Type first name here..." data-="" mini="true" data-inline="true" value="">
</label>
</div>
</form>
</div>
Emulator shows the form correctly (it can scroll down without entering any data to fields)But when i test it on the real device (xperial L) it does not scroll down.
to fix this error add this line
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
to the head
I'm working on phonegapp application. My application has a form which user should fill.I have used inline validation using Jquery. when user clicked some required field & didn't fill the field it will prompt the error or if he try to submit the form all the required fields will be given errors. It works as i want. My problem is when user clicked back-button without submitting the form, all the prompted errors are in the new page.How can i hide those prompted errors when user clicked back-button.
please help me.
I have attached screen shots to picasa-album. check it in here
https://picasaweb.google.com/103544813681982438507/PhonegapApp
Here goes my code..
<html>
<form id="formID" method="post" action="submit.action">
<ul data-role="listview" data-inset="true" data-theme="a">
<li ><div data-role="fieldcontain">
<label for="address">Address</label>
<input type="hidden" name="address" /></div>
<label for="street">Street:</label>
<input type="text" name="street" id="street" value="" class="validate[required] text-input" data-prompt-position="topLeft:50" data-prompt-position="top:60"/>
<label for="suburb">Suburb</label>
<input type="text" name="suburb" id="suburb" value="" class="validate[required] text-input" data-prompt-position="topLeft:50"/>
<label for="town">Town</label>
<input type="text" name="town" id="town" value="" class="validate[required] text-input" data-prompt-position="topLeft:50"/>
<label for="district">District</label>
<input type="text" name="district" id="district" value="" class="validate[required] text-input" data-prompt-position="topLeft:50"/></li>
<li>
<div data-role="fieldcontain">
<label for="date">Date</label>
<input value="" class="validate[required] text-input datepicker" type="text" name="date" id="date" data-prompt-position="topLeft:50" /></div></li>
<li>
<div data-role="fieldcontain">
<label for="owner_name">xxxxxxxx</label>
<input type="text" name="xxxxx" id="xxxxx" value="" class="validate[required] text-input" data-prompt-position="topLeft:50"/></div></li>
<li>
<div data-role="fieldcontain">
<label for="xxxxxx">xxxxxxxxxxxx</label>
<input type="text" name="xxxxxxxxxx" id="xxxxxxxxxxx" value=""/></div>
</li>
</ul>
<div data-role="fieldcontain">
<button type="submit" name="save" id="save" data-theme="a" value="Save" class="submit"/></div>
</form>
</div></div>
<script type="text/javascript">
//Form Validating.................................................
jQuery(document).ready(function(){
// binds form submission and fields to the validation engine
jQuery("#formID").validationEngine({autoHidePrompt:true});
$( ".datepicker" ).datepicker();
});
</script>
</html>
You can hide the form validation elements when a user navigates away from the current page:
$(document).on('pagehide', function () {
$('#formID').validationEngine('hideAll');
});
Source: https://github.com/posabsolute/jQuery-Validation-Engine
It doesn't look like you're quite following the jQuery Mobile page convention: http://jquerymobile.com/demos/1.1.0/docs/pages/page-anatomy.html
Quick Example:
<body>
<div data-role="page">
<div data-role="header>...</div>
<div data-role="content">...</div>
<div data-role="footer">...</div>
</body>
Note that .on() is new as of jQuery 1.7 so if you're using 1.6.4 or older, change .on() to .bind().