H:commandLink and Javascript

Hi All,
I have a commandLink in which I pass parameter using <f:param>. This commnadLink is enclosed under <h:form>
This <h:form> is calling javascript function on its onSubmit event.
<h:form onSubmit="return validateForm()" >
   <h:commandLink action="#{bean.action}" >
       <f:param name="action"  value ="settings"/>
   </h:commandLink>
</h:form>Now my problem is when I click commandlink my javascript function is not executed. And there is no onclick available in commandLink tag.
I saw the html output of this code. h:commandLink puts its own onclick so it makes sense that it doesnot have onClick support. But in generated code commandLink forcefully submits the form. So ideally any function in form's onsubmit() should be called but in this case it is not.
Any suggestions ? What is going wrong here ?
Thanks

We have a similar problem here. Strictly speaking, it seems like Faces isn't really oriented toward javascript validation -- it's expected that'll happen server side.
If you have to have it client-side (and, yes, I know the arguments), you could try the approach I came up w/here. (I'd actually appreciate some comments on it -- it's a hack, but i'm wondering how bad it is. :)
Put the h:commandLink in a hidden div, with just a wee bit of extra javascript:
<div style="display:none;">
<h:commandLink id="okCmd" ....>....</h:commandLink>
<h:outputFormat escape="false" value="
  <script> var okCmd = \"{0}\"; </script>
  ">
  <yourExtremelyShortTaglibNamespacePrefix:clientIdParam componentId="okCmd" />
<h:outputFormat>
</div>write your own link whose onclick handler calls validateForm() and then calls the h:commandLink's onclick:
function okeyDokey() {
  if (validateForm())
    clickLink( okCmd);  // okCmd var defined elsewhere (see above)
}So, then we need the clientIdParam custom tag, and the clickLink() javascript function.
public class ClientIdParam extends UIParameter
   public static final String COMPONENT_TYPE = "canopy.ClientIdParam";
    * Returns the clientId of the component indicated by the 'componentId'
    * property.  {@link UIComponent#findComponent(String)} will be used to
    * find the component.
   public Object getValue()
      return findComponent( getComponentId())
         .getClientId( FacesContext.getCurrentInstance());
   // getComponentId() (omitted) is straightforward....
}javascript clickLink():
* Simulate a user clicking a link.  Originally written for simulating clicks
* on JSF commandLinks, so if you change  it, make sure it still works for
* that purpose.
function clickLink( aLinkId)
   var link = document.getElementById( aLinkId);
   link.onclick();
}So... am I insane? Did I miss a simple one-line solution as plain as the nose on my face? (I wouldn't mind finding out there's something better.)
John.

Similar Messages

  • CommandLink and js:confirm

    hi, i meet some problem with commandLink and js.
    jsf code:
    <h:commandLink value="Del" onclick="return delconfirm();" action="#{userAdminBean.userDel}" >
                                            <f:param name="userId" value="#{info.uid}"/>
                                            <f:param name="userPartId" value="#{info.upartmentid}"/>
                                       </h:commandLink>js code:
         <script language="javascript">
              function delconfirm(){
                   return confirm("confirm to del?");
         </script>i click the commandLink "Del", then a messagebox with two button "submit" and "cancel" will be shown.but whether i click the "submit" or "cancel", the expolre client don't send request to web server,.
    who can help me?thanks.

    sorry, i use jsf1.1.
    it works when removing the onclick part.
    i hava not used commandButton to replace commandLink, as i must pass someparameter useing f:param.
    excepting using jsf1.2 , are there any other way to solve this problem?(not using commandButton ,because i have to pass parameter)

  • How is the length of a string calculated in Java?  and JavaScript?

    Hi all,
    Do any of you know how the length of a string is being calculated in Java and JavaScript? For example, a regular char is just counted as 1 char, but sometimes other chars such as CR, LF, and CR LF are counted as two. I know there are differences in the way Java and JavaScript calculate the length of a string, but I can't find any sort of "rules" on those anywhere online.
    Thanks,
    Yim

    What's Unicode 4 got to do with it? 1 characteris 1
    character is 1 character.
    strings now contain (and Java chars also) is
    UTF-16 code units rather than Unicode characters
    or
    code points. Unicode characters outside the BMPare
    encoded in Java as two or more code units. So it would seem that in some cases, a single
    "character" on the screen, will require two charsto
    represent it.So... you're saying that String.length() doesn't
    account for that? That sux. I don't know. I'm just making infrerences (==WAGs) based on what DrClap said.
    I assume it would return the number of chars in the array, rather than the number of symbols (glyphs?) this translates into. But I might have it bass ackwards.

  • Problem with commandLink and commandButton

    Problem with commandLink and commandButton
    I have commandButton id="submit" action="{myActionClass.dothis}"
    When I click on the commandbutton it is not submiting to the action class rather, its submitting to the same page..
    I am tired of this ...
    I am using tiles for displaying jsf pages . Any problem because of using tiles

    yes I have the validator.
    If I open the url directly its working fine
    let say I am opening localhost:8080/test/test.jsf
    then it works fine
    If i use the same test.jsf along with tiles and open it, then its dispalying all the elements but when i click on commandbutton.. nothin is happening.
    the seems like page is reloaded.

  • Closing the browser windows created by web.show_document and javascript

    From Forms I am issuing a http request using web.show_document and javascript:window.open(). The http request makes a remote procedure call to a coldfusion component on a JRun appserver. I want this rpc to fire in the background so that the current forms browser window remains as is.
    The logic is as follows
    l_rpcURL := 'http://....just a standard URL.....'; -- edited for this thread
    l_jsURL := 'javascript:window.open("' || l_rpcURL || '","","fullscreen=no,titlebar=no,location=no,toolbar=no,menubar=no,status=no,resizable=no");self.close();';
    WEB.SHOW_DOCUMENT (l_jsURL,'_blank');
    The http request works fine but leaves a browser window behind. It's the one created by the javascript.window.open(). If I remove the self.close() from the javascript then I have two browser windows open, one from web.show_document and the other, as described previously, from the window.open().
    Any idea how I can force closure of the window opened by the window.open() ?
    Thanks

    Hi,
    did this occured afer installing service pack 2?
    A work around is The only solution that is to create a close.html file and calling this file in the code: Web.show_document('http://server:port/close.html','_self');
    <html>
    <body onload="closeit()">
    <script>
    window.close();
    </script>
    </body>
    </html>
    Monica

  • Using Quicken to manage a bank account, I get an error message from the bank that cookies and javascript must be enabled, but I don't get that message when I connect with Internet Explorer.

    Firefox allows me to get the bank home page through Quicken. But when I try to login, the error message appears saying "cookies and javascript" must be enabled. I have Java on my system, but in Firefox under "tools/options/ I don't find any way to "enable" javascript. I have enabled "cookies".
    I have no problem logging in at the bank site using Internet Explorer, but to use it, I have to designate it as the "default browser" before connecting through Quicken. I'd rather keep Firefox as the default.
    A bank tech representative was unable to find any commands in Firefox that would deal with this problem, although she clearly had manuals for both Internet Explorer and Firefox. So she concluded that I would have to use Explorer for this operation, since it allowed control of security level settings. She said that in Explorer, security level should be set to medium.
    Is there some similar control in Firefox?

    Firefox uses the same "security level" setting that is set in IE.
    Tools > Options > '''Content''' <br />
    Is '''Enable Javascript''' check-marked?
    http://kb.mozillazine.org/JavaScript_is_not_Java
    If that doesn't solve your problem, do you have that problem when running in the Firefox SafeMode? <br />
    [http://support.mozilla.com/en-US/kb/Safe+Mode] <br />
    ''Don't select anything right now, just use "Continue in SafeMode."''
    If not, see this: <br />
    [http://support.mozilla.com/en-US/kb/troubleshooting+extensions+and+themes]

  • Hi, We have an application  built using HTMl 5 and Javascript running on IPad2, iOS5.1 Safari 5.1. When we try to download a file(.pvw file) in that application safari throws "Download failed" error. Please suggest what needs to be done.

    Hi,
    We have an application  built using HTMl 5 and Javascript running on IPad2, iOS5.1 Safari 5.1.
    When a file url is clicked instead of asking for Save or Open or Cancel options, the file gets opened on IPad by default.
    Is this default behaviour which cannot be changed or can it be configured to ask user preference?
    When we try to download a file(.pvw file -> a model file) in the above application, safari throws "Download failed" error.
    Please suggest what needs to be done.
    Regards,
    Pramod

    Safari on an iPad in general does not allow downloading of files. That's a safety precaution in the iOS SDK to keep unauthorized content off of iOS devices. Safari will open from the web site file types that it can handle, but direct downloading isn't normal behavior, and I don't believe the behavior can be changed, though you can try asking in the developer forum, either here or the one to which you have access as a member of Apple's iOS developer program.
    Regards.

  • SSO and JavaScript

    Hi all,
    does any one of you know about any restriction or any other issue involving SSO and JavaScript?
    We have a web app in an OC4J instance, which uses JSP and JavaScript.
    When SSO is disabled for the application, everything goes well. But when SSO is active, the page loads a lot slower, and the IE browser always shows the error icon when any component tries to execute Javascript.
    Any ideas about this issue?
    Oracle AS 10g (9.4.1)
    Win 2000 SP4
    IE 6.0 SP1
    Thanks a Lot in advance.
    Have a nice day.
    Jaime

    It is simpler to do from server side as follows. Place below line
    inside Page_Load event of any portal component:
       Write(this.Request.Cookies.Get("MYSAPSSO2").Value);

  • Using CSS and Javascript to display a div with flash in it, mozilla reloads the flash file!

    I am using CSS and Javascript to display a div with an
    embedded flash object in it. Mozilla Firefox reloads the flash file
    when the div is displayed! (I dont want this to happen, as it's
    unexpected functionality, my expectation would be that the flash
    file would not change it's state at all, and would remain in
    whatever state it was left in.)
    I was wondering if anyone has come across this issue and is
    there something I can do to prevent this from occurring?
    To be more specific, I have a single HTML page with 8 flash
    files embedded in it (yeah I know, it's a bit much). I am then
    using CSS and Javascript to display (via a numbered link (with an
    id)) an equivalent numbered div tag containing the flash file.
    Mozilla Firefox reloads the flash object that is in the div.
    Internet Explorer will not do this and will instead, load the flash
    object only upon initial view of the flash object. All subsequent
    links (in IE) will NOT reload the flash object on the page. I'm
    guessing this is some kind of difference in the flash player as an
    Active X object and the plugin, or is it just IE being clever? Or
    am I way off?
    Anyway, here is the code...

    I am using CSS and Javascript to display a div with an
    embedded flash object in it. Mozilla Firefox reloads the flash file
    when the div is displayed! (I dont want this to happen, as it's
    unexpected functionality, my expectation would be that the flash
    file would not change it's state at all, and would remain in
    whatever state it was left in.)
    I was wondering if anyone has come across this issue and is
    there something I can do to prevent this from occurring?
    To be more specific, I have a single HTML page with 8 flash
    files embedded in it (yeah I know, it's a bit much). I am then
    using CSS and Javascript to display (via a numbered link (with an
    id)) an equivalent numbered div tag containing the flash file.
    Mozilla Firefox reloads the flash object that is in the div.
    Internet Explorer will not do this and will instead, load the flash
    object only upon initial view of the flash object. All subsequent
    links (in IE) will NOT reload the flash object on the page. I'm
    guessing this is some kind of difference in the flash player as an
    Active X object and the plugin, or is it just IE being clever? Or
    am I way off?
    Anyway, here is the code...

  • Safari not rendering CSS and javascript correctly

    There seems to be a bug in Safari when dealing with CSS display property and javascript.
    I've created a form that hides certain fields when the right circumstances are met, those fields become visible. However, when they become visible, through the use of javascript, they don't display in the flow of the document. For example:
    [field 1]
    [field 2]
    [field 3]
    Assume that [field 2] is hidden on initial page load. And when [field 1] is clicked, then [field 2] should appear and it should appear after [field 1]. Safari, however, displays [field 2] above [field 1] and strips it of any styles. I spent 2 hours trying to figure out what I was doing wrong, but it turns out I wasn't doing anything wrong. It's Safari that can't render this correctly because when I test it in Firefox it works fine. Just as I expected it to. I hope this gets fixed in the next update.
    If anyone has any explanation or solutions or reasons for this peculiar anomaly please tell me.

    If you have not done so already, make sure you also tell Apple by using the Bug Reporting item in the Safari menu.

  • HELP PLASE ! JavaBean and Javascript in frames :)

    Hello,
    First please excuse me for my bad english I'm French think you in advance for your patience and your help ! :)
    To resum the problem :
    I have 2 frames, a menu frame and a main frame
    I use a javabean wich is saved in application variable.
    When the pages of main frame use the javabean there is no probleme.
    BUT when menu frame calls pages of main frame it don't restore the javabean, it looks like je page called by menu frame, which operates on the javabean, wasn't called, and the changes I do in this page aren't saved
    Menu frame uses javascript to calls main frame pages so I think the problem is conjonction of frame and javascript.
    But I have no choice because it's volonty of my boss, so please help me ! :)
    More precisly :
    the javabean : NavigationBean
    page frame menu : menu_page.jsp
    main pages which use javabean : pageA.jsp, pageB.jsp, pageC.jsp
    pageA.jsp has reference on pageB.jsp which has reference on pageC.jsp
    Traitement of the javabean NavigationBean in pageA.jsp, pageB.jsp and pageC.jsp :
    <jsp:useBean      id="gestionNavigation"
              class= "NavigationBean"          
              scope="application">                         
    </jsp:useBean>
    <jsp:setProperty      name="gestionNavigation"
                   property="request"
                   value="<%=request%>" />     
    (it needs response and request to run)
    <jsp:setProperty      name="gestionNavigation"
                   property="response"
                   value="<%=response%>" />
    <jsp:setProperty      name="gestionNavigation"
                   property="pageActuelle"
                   value="<%=urlActuelle%>" />
    (it saves in NavigationBean object the url where user is)
    In pageA I clean all NavigationBean so all pages saved are deleted
    if user go DIRECTLY on pageA.jsp, all is ok :
    user go on
         pageA -> pageB -> pageC
    and NavigationBean save
         pageA -> pageB -> pageC
    That's good ! :)
    BUT if after user go on menu frame it's wrong !
    user go on
         pageA -> pageB -> pageC -> menu_page.jsp -> pageA -> pageB
    BUT NavigationBean save
         pageA -> pageB -> pageC -> pageB
    instead of
         pageA -> pageB
    To resume, for NavigationBean when user go directly on main pages there is no problem, but when it uses menu frame it doesn't save that user go on pageA
    I clean NavigationBean on pageA, but instead of this problem it doesn't clean and retrieve old datas
    It looks like that when user uses menu FRAME it uses an old NavigationBean object, but when it go directly on pages of main frame it runs !
    And I use scope application so don't understand, I have tried session scope but no change :(
    I have tried using "response.encondeURL" but no change
    Think you in advance for your help, and good luck from Paris for all New York people ! :)
    David

    It sounds like what might be happening is when the user goes 'back' to the menu, they're not requesting the page from the server. So, they're either getting the old page cached by the browser. Maybe. If you reload the menu page manually, does it work?

  • Error using java and javascript

    I have a jsp page that links to a bean and is working fine (getting data from the database).
    On a html form I have a button with a picture that fires off javascript when clicked:
    <BUTTON TYPE=reset onclick=showinfo('<%=index%>')>
    <IMG SRC="http://localhost:8080/Portal/Images/q2.bmp" ALT="Info">
    </BUTTON>
    The javascript function just opens a new window and displays the text sent in:
    <Script Language=JavaScript>
    function showinfo(arrayindex)
    InfoWin=window.open("","InfoWin","width=345,height=220");
    InfoWin.document.write(arrayindex);
    return false;
    </Script>
    Well in the above example index is a number (pulled from the database using a java bean and javascript converts it into a string then the function displays it correctly. If I replace <%=index%> with regular text it works fine as well(because java isn't used to pull data)! The problem occurs when I retrieve text data from the database and send it to the function. The web page gives errors about a nonterminating string. But I can move the code to somewhere else on the form(as long as I don't send it to java script) and it will print the text to the screen. I can also view the source of the web page and the html shows the text from the data base as if I hard coded the text into the javascript!!!!!!!!!!!!!!!!!
    This must be a bug between java and javascript!
    -can pass numbers(from a database) between the two
    -can't pass text (from a database)between the two
    Any info would help!

    Found the problem myself!
    I am using an odbc connection to msaccess and the spaces in the text was messing things up!
    After taking out the spaces it worked again.

  • Item Renderers Preview and JavaScript Generator wizard

    Hi all,
    there are 2 feature I can't seem to get my hand on on the
    latest Beta release of FB3 (Beta 3): Item Renderers Preview and
    JavaScript Generator wizard.
    Can anyone elaborate on how to get these started? how can I
    check'em out? are they in the Beta 3 at all or are they supposed to
    come out only in the final release. As far as now I wasn't able to
    find any information on both on the web aside from what Matt Chotin
    wrote on the "What's new" and on the FB3 Wiki.
    cheers.

    Hello Heike,
    Well I have been working on this and wanted some more information regarding one of the possible issues.
    As I have been telling you that I have dropdown boxes and based on the values that the user selects corresponding report should run.(I have eight drop down box and five push buttons)
    Now I have made the selection in the drop down boxes "multiple".
    I am generating the url for all the selected values. Like I have a drop down box whose value is 0SALES_OFF. if the user selects three options for this filter say "A", "B" and "C" and hits one of the push buttons , the query runs fine and filters the value. The only problem lies in the drop down box: it shows "A","B" and "C" as selected values in the drop down box, however this is just a display text and its value is"!unchanged". Now if the user wants to keep the same filter value the value that is being used for the selection is "!unchanged" instead of "A","B" and "C".
    I think this code is generated by SAP.Can you give me some insight as to where should I make certain changes so that values persists?
    Personally, I feel this is a more cumbersome method than using the standard navigation block..but still .I am client site...
    Thanks and Regards
    Pradeep Bhojak

  • What's the difference between java and Javascript?

    I a new programer, I am getting Java down. Now I want to add some java scripts to my site. Is there any difference between java and Javascript? Can I use the Java API site refference and classes? Thanks..

    Java is a programming language, Javascript is more for web pages. It is used to add interactivity to your web pages. 2 different languages.
    check out www.java.sun.com for Sun Java stuff.
    Lynn

  • Commandlink and checkbox in a region(.jsff).

    Hi all,
    I have a commandlink and checkbox in a region(.jsff).
    when i tried to call a method using propertychangeListener or Actionlistener ..
    methosd is not calling ...
    Plase give any solution...

    Hi,
    not enough information - sorry
    Frank

Maybe you are looking for

  • Significance of service-profile property?

    Hi all,       i would like to know the significance of profile property of a portal service? The service that I created in NWDS doesn't show up in <b>service configuration</b> of portal , if there's no service-profile property in my portalapp.xml. I

  • Mapping problem :XmlUtf8RawTextWriter.cs is not found

    Hi, When I am debug my map then I got the following error : What is the reason ? Any help would be appreciated . Prakash

  • ABAP code to get MM Movement Types into BI

    Hi All, I need help in ABAP code to extract data on MM tables for Purchase Price Variance Raw Material. I'm getting material documents for all reversals 102 movement type and not extracting followed up 544 or 543 values for same documents. I don't ha

  • IPAD Video App resolution issues

    the Ipad is reported to have a 1024 by 768 resolution but the video app does not seem to support a frame width greater than 640. Evidence : I use one app to convert video to MP4 - most of which I can drop into iTunes and then sync onto the iPad, howe

  • Install weblogic6.0 with sp2  on RedHat 7.1

    I have installed jdk1.3.1 and jre1.3.1 on RedHat7.1 for alpha when I install the weblogic,I have a problem,the message following below: Preparing to install....... /bin/ls:/usr/java/jdk130/.java_wrapper -rwxr-xr-x 1 root bin 177523 Jul 20 16:34 awt_r