2015-05-19 4 views
0

Я хочу, чтобы запустить функцию яваскрипта, когда я нажимаю на CommandButton на signin.xhtml, но когда я нажимаю на него, переориентация происходит в dev.xhtml. Я не хочу этого перенаправления, я хочу остаться на signin.xhtml. На самом деле это не перенаправление, потому что это то же самое: index.xhtml страница с ленивой загрузкой.OnClick Перенаправление и ленивые нагрузки

Вот мой CommandButton из signin.xhtml:

<h:form id="formSignInPartner" enctype="multipart/form-data"> 
    <p:commandButton value="Géolocaliser mon commerce" onclick="getLocation()"/> 
</h:form> 

И index.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
     xmlns:pm="http://primefaces.org/mobile" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 
    <f:view renderKitId="PRIMEFACES_MOBILE" /> 
    <h:head> 
     <script type="text/javascript" src="../javascript/geolocalisationPartner.js"></script> 
    </h:head> 
    <h:body> 
     <pm:page id="dev" lazy ="false"> 
      <ui:include src="trash/dev.xhtml"/> 
     </pm:page> 
     <pm:page id="partnerSignIn" lazy="true"> 
      <ui:include src="/Partner/signIn.xhtml"/> 
     </pm:page> 
     </h:body> 
    </html> 

Здесь сценарий geolocalisationPartner.js, но я не думаю, что это проблема

var options = { 
    enableHighAccuracy: true, 
    timeout: 5000, 
    maximumAge: 0 
}; 
function error(msg) { 
    alert('Geolocalisation échouée :\n' + msg); 
} 
function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition, error, options); 
    } else { 
     alert('Votre navigateur\nne supporte pas\nla geolocalisation'); 
    } 
} 

function showPosition(position) { 
    var long = position.coords.longitude; 
    var lat = position.coords.latitude; 
    $(PrimeFaces.escapeClientId('partnerSignIn:formSignInPartner:idlongitude')).val(long); 
    $(PrimeFaces.escapeClientId('partnerSignIn:formSignInPartner:idlatitude')).val(lat); 
    alert('Geolocalisation réussie !'); 

} 
+0

Я нашел проблему. В консоли javascrip я увидел, что файл сценария не найден. Спасибо в любом случае –

ответ

0

Я нашел проблему. В консоли javascrip я увидел, что файл сценария не найден, путь был ошибочным.

0

Вы можете использовать event.preventDefault

сценарий

function getLocation(e) { 
    e.preventDefault() 
    // your code here 
} 

XHTML
<p:commandButton value="Géolocaliser mon commerce" onclick="getLocation(e)"/> 
0

Вы должны cancel событие, если вы не хотите, чтобы связать.

function getLocation(evt) { 
    evt.preventDefault(); 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition, error, options); 
    } else { 
     alert('Votre navigateur\nne supporte pas\nla geolocalisation'); 
    } 
} 

Обновить ваш HTML:

<p:commandButton value="Géolocaliser mon commerce" onclick="getLocation(evt)"/> 
+0

Спасибо, но он не работает. Это даже худшее, прежде чем добавлять предупреждение по умолчанию, я мог бы снова получить signin.xhtml, а затем commandButton не перенаправил меня (изменение URL-адреса с http: // localhost: 8080/Zelda-web на http: // localhost: 8080 /Zelda-web/faces/index.xhtml после первого щелчка), но теперь он перенаправляет меня каждый раз –

 Смежные вопросы

  • Нет связанных вопросов^_^