2014-08-27 1 views
0

Я пытаюсь добавить javascript для моей страницы visualforce, которая также является сайтом force.com.Javascript для проверки обязательной записи поля на странице VF не работает

Я пробовал несколько разных способов получить поле, требуемое сообщение для поп-музыки, но оно не работает. Я вставил код ниже, и любая помощь будет принята с благодарностью.

<apex:form > 

<script> 
function doValidation(){ 
     var checkvalu = <apex:outputText value="{!customer}"/>; 
     if(checkValu.length >0){ 
     saveNow(); 
     } 
     else{ 
     alert('Please fill out all fields!'); 
    } 
} 
</script> 
     <apex:panelGrid styleClass="section">Please enter your contact information</apex:panelGrid> 

     <apex:panelGrid styleClass="survey">Name</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!customer}"/> 


     <apex:panelGrid styleClass="survey">Company</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!company}"/> 


     <apex:panelGrid styleClass="survey">Address</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!Address}"/> 


     <apex:panelGrid styleClass="survey">City/Town</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!city}"/> 


     <apex:panelGrid styleClass="survey">State/Province</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!state}"/> 


     <apex:panelGrid styleClass="survey">Zip/Postal Code</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!zip}"/> 


     <apex:panelGrid styleClass="survey">Country</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!country}"/> 


     <apex:panelGrid styleClass="survey">Email Address</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!email}"/> 


     <apex:panelGrid styleClass="survey">Phone Number</apex:panelGrid> 

     <apex:inputText styleClass="textarea" value="{!phone}"/> 

+0

Почему вы добавляете разметку Visualforce внутри кода javascript? – highfive

+0

Я пытаюсь получить сообщение всплывающее на сайте force.com, когда кто-то заполняет опрос, и они не добавляют значение в требуемое поле. Есть ли лучший способ добавить всплывающее сообщение? –

+0

'var checkvalu = '{! Customer}';' Это должно заполнить поле 'checkvalu', если вы правильно привязываете переменную' customer' с контроллером. Проверьте наличие ошибки скрипта с помощью FireBug или аналогичного инструмента. – highfive

ответ

0

Вы можете непосредственно сделать поле в соответствии с требованиями Visualforce, используя необходимый атрибут для конкретного компонента

<apex:inputField value="{!Account.Name}" required="true"/> 

Чтобы сделать поле обязательно используя Javascript в Visualforce странице, пожалуйста

<apex:page StandardController="Account"> 
    <script> 
     function setRequired() { 
      if (document 
        .getElementById('{!$Component.theForm.thePageBlock.thePageBlockSection.accPhone}').value == '') 
       alert("Phone number will not be blank"); 

     } 
    </script> 
    <apex:form id="theForm"> 
     <apex:pageBlock id="thePageBlock"> 
      <apex:pageBlockButtons> 
       <apex:commandButton value="submit" action="{!save}" 
        onclick="setRequired();" /> 
      </apex:pageBlockButtons> 
      <apex:pageBlockSection id="thePageBlockSection"> 
       <apex:inputField id="accPhone" value="{!Account.Phone}" /> 
       <apex:inputField value="{!Account.Name}" /> 
      </apex:pageBlockSection> 
     </apex:pageBlock> 
    </apex:form> 
</apex:page> 

С уважением, Naveen Инженер-программист http://www.autorabit.com

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