复选框值始终为false(JQUERY)

时间:2015-08-20 06:53:05

标签: jquery json asp.net-mvc checkbox sharepoint-2013

我是jquery和sharepoint的新手。我正面临一个问题。 我有一个应用程序通过JSON将数据从服务器加载到客户端。在客户端的表单上做一些工作后,将数据解析回服务器。 每当我选中复选框时,我总是得到值0。 这是我正在使用的代码。

def caesar_cipher(input, key)
    input.each do |x| 
        numbers = x.ord + key.to_i unless (numbers > 122) then numbers = x.ord + key - 26
        letters = numbers.chr
        print letters
    end
end

puts "Write the words you want to be ciphered: "
input = gets.chomp.split(//)
puts "Write the key (1 - 26): "
key = gets.chomp
caesar_cipher(input,key)

完整的功能正在关注

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

}

html代码正在跟随。

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);

4 个答案:

答案 0 :(得分: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这个。 :)

答案 1 :(得分:0)

您无法以这种方式访问​​已检查的属性。有两种方法可以访问已检查的属性

使用

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

或使用

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

答案 2 :(得分:0)

您可以尝试以下

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

答案 3 :(得分:0)

 $("input[type='checkbox']").val();

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

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

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