2010-07-19 6 views
0

나는 셰어 포인트 사이트에 양식이 있으며 일부 필드가 필수 필드 (datetime picker 등)가되기를 원합니다. 숨겨진/다른 필드를 볼 수 있도록하고 또한 내가 사용하는 빨간색 * 후 필수 항목 제목 (예)를 추가하려면 :jQuery/JavaScript 유효성 검사 컨트롤

//Strategic Priority 
$('nobr:contains("Strategic Priority")').closest('tr').show(); 
$('nobr:contains("Strategic Priority")').html("Strategic Priority <span class=\"validate\"> *</span>"); 

//Performance Measure 
$('nobr:contains("Performance Measure")').closest('tr').hide(); 

//Start Date 
$('nobr:contains("Start Date")').closest('tr').show(); 
$('nobr:contains("Start Date")').html("Start Date <span class=\"validate\"> *</span>"); 

사용자가 버튼을 제출 칠 때 필수 요소를 확인하는 가장 좋은 방법은 무엇입니까? 버튼

<td class="ms-formbody" valign="top" width="400px"> 
    <!-- FieldName="Target Date" 
    FieldInternalName="DueDate" 
    FieldType="SPFieldDateTime" 
    --> 
    <span dir="none"> 
    <script language="javascript">g_strDateTimeControlIDs["SPDueDate"] = "ctl00_m_g_c6ae303a_6013_4adb_8057_63a214bcfd24_ctl04_ctl00_ctl00_DateTimeField_DateTimeFieldDate";</script> 

    <table><tbody><tr> 
    <td class="ms-dtinput"> 
    <label for="ctl00_m_g_c6ae303a_6013_4adb_8057_63a214bcfd24_ctl04_ctl00_ctl00_DateTimeField_DateTimeFieldDate" style="display: none;">Target Date Date</label> 
    <input name="ctl00$m$g_c6ae303a_6013_4adb_8057_63a214bcfd24$ctl00$ctl04$ctl10$ctl00$ctl00$ctl04$ctl00$ctl00$DateTimeField$DateTimeFieldDate" maxlength="45" id="ctl00_m_g_c6ae303a_6013_4adb_8057_63a214bcfd24_ctl04_ctl00_ctl00_DateTimeField_DateTimeFieldDate" title="Target Date" class="ms-input" autopostback="0" type="text"></td> 

생성 된 HTML : 내가 요소를 얻을이 비어 있는지 여부를 확인하기 위해 ID 또는 이름을 사용할 수 없습니다

<td class="ms-toolbar" nowrap="true"> 

    <table width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td width="100%" align="right" nowrap="nowrap"> 
    <input name="ctl00$m$g_c6ae303a_6013_4adb_8057_63a214bcfd24$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem" value="OK" onclick='if (!PreSaveItem()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_c6ae303a_6013_4adb_8057_63a214bcfd24$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true))' id="ctl00_m_g_c6ae303a_6013_4adb_8057_63a214bcfd24_ctl00_toolBarTbl_RightRptControls_ctl00_ctl00_diidIOSaveItem" accesskey="O" class="ms-ButtonHeightWidth" target="_self" type="button"> 
    </td> 

html로이 같이 보입니다.

미리 감사드립니다.

편집 :

나는 으로 시도하는 경우 ($ ("입력 [제목 = '시작 날짜']") 발()를 길이 < 1..) { 경고 ("테스트"); }

필드에 데이터가 있지만 비어있는 경우 팝업이 표시되지 않습니다. 다음 단계는 "필수 필드"를 말한 (경보를 발생시키는 대신) 필드 뒤에 몇 개의 텍스트를 추가하는 것입니다. 유효성을 검사 한 요소 다음에 jQuery/JavaScript와 함께 어떻게 삽입합니까?

답변

0

어때?

$("input[title='Start Date']").each(function() { 
    var obj = $(this); 
    if (obj.val().length < 1) { 
    // Check if notified already, if not, add text 
    if (!obj.data('notified')) { 
     obj.after('Required Field'); 
     obj.data('notified', true); 
    } 
    } 
}); 
관련 문제