2016-05-18 59 views
-1

我試圖使用jQuery .val()功能下頁上預填一些信息:如何在salesforce aura閃電組件中使用jQuery .val()?

https://tophatsupport.force.com/s/contactsupport

我使用的線沿線的東西:

$("input[placeholder='Top Hat Username *']").val("This is a test"); 

這工作和填補領域,但當我試圖提交表格時,它將該字段標記爲無效,就好像沒有填充那裏一樣。

我想知道如果有人在這裏知道如何填寫這些字段使用JS或jQuery和他們是提交表單時有效的字段。

我很感謝您的幫助interwebs!

回答

0

您提供的網址在頁面上有某種類型的javascript,每500毫秒檢查一次URL,並使用url查詢字符串中的值更新用戶名和電子郵件字段的值。如果url沒有任何查詢字符串,那麼空白值正在更新,這正在產生問題。 如果這是您的頁面,那麼如果查詢字符串不存在,則必須修改javascript以不更新該字段。 如果您提供查詢字符串,那麼電子郵件和用戶名正在填充,如提供window.location.search =「username =這是一個測試& email = [email protected]」。

0

你的jQuery片段是正確的,並按預期工作。這只是你已經設置了setInterval,不斷覆蓋你的輸入字段:

queryOutput = setInterval(function(){ 
    if($(".queryOutput").parent()){ 
     console.log("Found queryOutput, appending test text."); 
     $(".queryOutput").html("Username: " + getQueryVariable("username") + "<br>" + "First Name: " + getQueryVariable("firstname") + "<br> Last Name: " + getQueryVariable("lastname")); 
     if($("input[placeholder='Top Hat Username *']")){ 

      // HERE: getQueryVariable("username") returns undefined. 
      $("input[placeholder='Top Hat Username *']").val(getQueryVariable("username")); 
      $("input[placeholder='Email *']").val(getQueryVariable("email")); 

     } 
     if($(".queryOutput").html() != "Query output here"){ 
      //clearInterval(queryOutput); 
     } 
    } 
}, 500); 
+0

Uzbekjon,謝謝你的迴應!問題是如果你運行clearInterval(queryOutput);在您的控制檯中,然後嘗試使用.val()函數,仍然會返回錯誤。或者,如果您使用網址: https://tophatsupport.force.com/s/contactsupport?username=test123&[email protected] 那麼理論上它應該能夠接受這個預填充數據到表單,但它並不認爲它沒有被填充。我每500毫秒更新一次,因爲一些後端腳本會自動清除提交時的值。這是一個非常有趣的難題,我似乎無法破解 – 619deathstar

相關問題