Visualforce - Использование Javascript для обязательных полей - PullRequest
0 голосов
/ 19 сентября 2018

Team,

Я работаю над страницей Salesforce Visualforce, используя Javascript для проверки обязательных полей - списка выбора и текстовых полей.Я попытался использовать html required = true , но это не сработало, потому что у меня есть две функции - сохранить ссылку и кнопку отправки - на моей странице visualforce.Я хотел бы, чтобы пользователь получил сообщение об ошибке, если он попытается отправить запрос, а необходимые поля будут пустыми или пустыми.Ниже мой код, но он не работает.

<script>
	function submitOnClick(objSubmitBtn){
		var RevPL = document.getElementById('RevPL').value;
		if(RevPL == null || RevPL == ''){
			alert('Review needed.')
			return false;
		}

		var StatusPL = document.getElementById('StatusPL').value;
		if(StatusPL == null || AdhStatusPL == ''){
			alert('Status needed.')
		}
		
		var StatusPL = document.getElementById('Notes').value;
		if(StatusPL == null || AdhStatusPL == ''){
			alert('Please add notes.')
		}

		if(confirm('Are you sure you want to submit?')){
			objSubmitBtn.disabled = true;
			objSubmitBtn.value = 'Submitting... Please Wait';
			doSubmit();
		}
	}
</script>

<apex:form id="PRDetails"> 
	<table width="100%">
		<tr>
			<td width="50%">
				3. Review of documentation &nbsp;
					<b> <apex:outputText value="{!PR['Review__c']}" rendered="{!PR['Status__c']='Complete'}"/> </b>
						<apex:inputField value="{!PR['Review__c']}" rendered="{!PR['Status__c']!='Complete'}" id="RevPL" />
				
			</td>
		</tr> 
	</table>
	
	<br/>  
	
	<table width="100%">
		<tr>
			<td width="50%">4. Status &nbsp;
				<b> <apex:outputText value="{!PR['Status__c']}" rendered="{!PR['Status__c']='Complete'}"                                      /></b>
					<apex:inputField value="{!PR['Status__c']}" rendered="{!PR['Status__c']!='Complete'}" id="StatusPL" />
			</td>
		</tr>
		<tr>
			<td class="padding">Notes:</td> 
		</tr>
		<tr>
			<td class="padding">
				<b> <apex:outputText value="{!PR['Notes__c']}" rendered="{!PR['Status__c']='Complete'}"/> </b>
					<apex:inputField styleClass="inputLTextbox" value="{!PR['Notes__c']}" rendered="{!PR['Status__c']!='Complete'}" id="Notes"/>
			</td>
		</tr>
	</table>
	
	<table align="center">
        <tr>
            <td>
                <apex:repeat value="{!PR}" var="PR">
                    <apex:commandButton value="Submit" style="background: #1895c1; color: #FFFFFF; width: 150px;" onclick="submitOnClick(this);" rendered="{!PR['Status__c'] !='Complete'}"/> 
                </apex:repeat>
                <apex:actionFunction name="doSubmit" action="{!submitPR}" /> 
            </td>
        </tr>
    </table>
	
    <table width="100%">
        <tr>
            <td style="text-align:right;"><apex:commandLink action="{!savePR}" value="Save" id="SaveLink" style="text-decoration:none; color:blue;"/></td>
        </tr>
    </table>
</form> 

1 Ответ

0 голосов
/ 23 сентября 2018

1) Вы получили

var StatusPL

Отклонено дважды.

2) Visualforce генерирует идентификаторы по-своему (добавляет иерархию) - ваш getElementById не будетработать, нужно сделать что-то еще - сделать проверку на своей странице в браузере.Может быть, добавить классы и использовать вместо этого getElementByClass?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...