2015-08-20 3 views
0

Я новичок в jquery и sharepoint. Я столкнулся с проблемой. У меня есть приложение, которое загружает данные с сервера на клиент через JSON. И после выполнения некоторой работы над формой в клиенте проанализируйте данные на обратном сервере. Всякий раз, когда я устанавливал флажок, я всегда получаю значение 0. Вот код, который я использую.Значение checkbox всегда получает false (JQUERY)

$(this).closest(".filter").find(".value").val(this.checked ? 1 : 0); 

И полная функция следующая

function initializeFilters(){ 
var filterContainer = $(".filter-box-data"); 
var hiddenFilter = filterContainer.find(".filter-hidden"); 
hiddenFilter.find(".operator-container,.value-container,.logic-operator-container").hide(); 
var columnDropDown = hiddenFilter.find("select.columns"); 
bindDropDown(columnDropDown, listFieldDisplayNames); 
columnDropDown.change(onFilterColumnDropDownChanged); 
hiddenFilter.find(".operator-container select").change(onFilterOperatorDropDownChanged); 
hiddenFilter.find(".value-boolean").change(function(){ 
    $(this).closest(".filter").find(".value").val(this.checked ? 1 : 0); 
    debugger; 
}); 

addFilterRow(); 
$(".add-filter-link").click(addFilterRow); 
$("[id$='filter-remove']").click(
    function(e){ 
     removeFilterRow($(this),e); 
    } 
); 
buildFilterControls(selectedFiltersData); 

}

И HTML код заключается в следующем.

<div class="filter-box row-container"> 
     <div class="label-container column-container"> 
      Filter: 
     </div> 
     <div class="filter-box-data"> 
      <div class="filter filter-hidden control-container column-container"> 
       <div> 
        <div class="column-container"> 
         <select class="columns filtersDropDown" name="FieldName"> 

         <option value="-1">(None)</option><option value="Title">Title</option><option value="Description">Description</option><option value="IsEnabled">IsEnabled</option><option value="ViewCount">ViewCount</option><option value="RoutingRuleDescription">Description1223</option><option value="ContentTypeId">Content Type ID</option><option value="StartDate">Start Date</option><option value="EndDate">End Date</option><option value="PersonOrGroup">PersonOrGroup</option><option value="Lookup">Lookup</option><option value="Note">Note</option><option value="Choice">Choice</option><option value="ID">ID</option><option value="ContentType">Content Type</option><option value="Modified">Modified</option><option value="Created">Created</option><option value="Author">Created By</option><option value="Editor">Modified By</option><option value="Attachments">Attachments</option><option value="LinkTitle2">Title</option><option value="FileRef">URL Path</option><option value="FileDirRef">Path</option><option value="Last_x0020_Modified">Modified</option><option value="Created_x0020_Date">Created</option><option value="FileLeafRef">Name</option><option value="UniqueId">Unique Id</option><option value="DocIcon">Type</option><option value="ServerUrl">Server Relative URL</option><option value="EncodedAbsUrl">Encoded Absolute URL</option><option value="ItemChildCount">Item Child Count</option><option value="FolderChildCount">Folder Child Count</option></select> 
        </div> 
        <div class="operator-container" style="display: none;"> 
         <select class="operator" name="Operator"> 
         </select> 
        </div> 
        <div class="value-container" style="display: none;"> 
         <div class="value-boolean"> 
          <input type="checkbox" class="value-boolean" style="display: none;"> 
          Yes/No 
         </div> 
         <input class="value" type="text" name="value"> 
        </div> 
        <div class="logic-operator-container" style="display: none;"> 
         Or:<input type="radio" value="Or" name="filter-con" checked="checked"><br> 
         And:<input type="radio" value="And" name="filter-con"> 
        </div> 

        <img id="filter-remove" src="/Style%20Library/Images/cross-circle.png" alt="X" style="cursor: auto;" class="mCS_img_loaded"> 

       </div> 
      </div> 
     <div class="filter control-container column-container"> 
       <div> 
        <div class="column-container"> 
         <select class="columns filtersDropDown" name="FieldName"> 

         <option value="-1">(None)</option><option value="Title">Title</option><option value="Description">Description</option><option value="IsEnabled">IsEnabled</option><option value="ViewCount">ViewCount</option><option value="RoutingRuleDescription">Description1223</option><option value="ContentTypeId">Content Type ID</option><option value="StartDate">Start Date</option><option value="EndDate">End Date</option><option value="PersonOrGroup">PersonOrGroup</option><option value="Lookup">Lookup</option><option value="Note">Note</option><option value="Choice">Choice</option><option value="ID">ID</option><option value="ContentType">Content Type</option><option value="Modified">Modified</option><option value="Created">Created</option><option value="Author">Created By</option><option value="Editor">Modified By</option><option value="Attachments">Attachments</option><option value="LinkTitle2">Title</option><option value="FileRef">URL Path</option><option value="FileDirRef">Path</option><option value="Last_x0020_Modified">Modified</option><option value="Created_x0020_Date">Created</option><option value="FileLeafRef">Name</option><option value="UniqueId">Unique Id</option><option value="DocIcon">Type</option><option value="ServerUrl">Server Relative URL</option><option value="EncodedAbsUrl">Encoded Absolute URL</option><option value="ItemChildCount">Item Child Count</option><option value="FolderChildCount">Folder Child Count</option></select> 
        </div> 
        <div class="operator-container" style="display: block;"> 
         <select class="operator" name="Operator"> 
         <option value="-1">(None)</option><option value="Eq">Equal to</option><option value="Neq">Not equal to</option><option value="Gt">Greater than or equal to</option><option value="Gte">Greater than or equal to</option><option value="Lt">Less than</option><option value="Lte">Less than or equal to</option><option value="IsNull">Is Null</option><option value="IsNotNull">Is not null</option></select> 
        </div> 
        <div class="value-container" style="display: block;"> 
         <div class="value-boolean"> 
          <input type="checkbox" class="value-boolean" style=""> 
          Yes/No 
         </div> 
         <input class="value" type="text" name="value"> 
        </div> 
        <div class="logic-operator-container" style="display: block;"> 
         Or:<input type="radio" value="Or" name="Operator2" checked="checked"><br> 
         And:<input type="radio" value="And" name="Operator2"> 
        </div> 

        <img id="filter-remove" src="/Style%20Library/Images/cross-circle.png" alt="X" style="cursor: auto;" class="mCS_img_loaded"> 

       </div> 
      </div></div> 
     <a id="lnkShowMoreColumns" href="javascript:;" class="add-filter-link">Add new filter...</a> 
     <br> 
    </div> 
+1

Показать html, что это касается. –

+1

Ваш флажок не имеет определенного идентификатора? – Sherlock

+1

Я назначаю значение флажка в текстовое поле –

ответ

1

Ну, я задал вопрос. Но никто здесь не отвечает на вопрос. Вот что на самом деле неправильно.

hiddenFilter.find(".value-boolean").change(function(){ 
$(this).closest(".filter").find(".value").val(this.checked ? 1 : 0); 
debugger; 

});

Я нашел по классу value-boolean, который был дважды в том же коде. И по этой причине функция вызова функции дважды. Поэтому изменение стоимости.

<div class="value-boolean"> 
    <input type="checkbox" class="value-boolean" style="display: none;"> 
         Yes/No 
    </div> 
    <input class="value" type="text" name="value"> 
</div> 

В этом была проблема. Спасибо всем, кто отвечает на этот вопрос. И особенно кто -1 это. :)

0

Вы не можете получить доступ к объекту, зарегистрированному таким образом. Есть два способа доступа проверяемого атрибута

Либо использовать

$(this).closest(".filter").find(".value:checked").length 

Или использовать

$(this).closest(".filter").find(".value").attr("checked") 
+1

Существует скрытое текстовое поле. Чей класс является ценным. Я собираюсь присвоить значение этому текстовому окну. –

0

Вы можете попробовать ниже

$(this).closest(".filter").find(".value").val($(this).is(":checked")==true?1:0) 
0
$("input[type='checkbox']").val(); 

или

$('#check_id').val(); 

или

if ($('#check_id').is(":checked")) 
{ 
    // it is checked 
} 

или

$("#check_id").attr('checked', true); 
+0

Другой вариант: $ ('input: radio [name = nameOfRadioButtons]: checked'). Val(); –

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