jquery使用serialize比较元素

时间:2013-04-24 19:57:11

标签: javascript jquery

我正在尝试将表单元素的值与其默认文本(通过title属性设置)进行比较。如果VALUE == TITLE,则将值更改为零长度字符串。但是,我似乎无法使其发挥作用。我确信这只是我缺乏Javascript和jQuery的经验。非常感谢。

HTML

<form name="results-form" id="results-form">

    <input type="text" name="price-min" class="form-textbox-small no-radius defaultText" data="Minimum" title="Minimum" onchange="UpdateSearch()">

    <input type="text" name="price-max" class="form-textbox-small no-radius defaultText" data="Maximum" title="Maximum" onchange="UpdateSearch()">

</form>

的Javascript

function updateSearch(){
    $.each($("#results-form").serializeArray(),function(){
        console.log("value: "+this.value+"     data: "+this.data+"     title: "+this.title);
       if(this.value == this.title){

          this.value = '';

       }

    });
    var FormData = $("#results-form :input[value!='']").serialize();
    console.log(FormData);
    $(".defaultText").blur();
}

$(document).ready(function () {


    $(".defaultText").focus(function (srcc) {
        if ($(this).val() == $(this)[0].title) {
            $(this).removeClass("defaultTextActive");
            $(this).val("");
        }
    });

    $(".defaultText").blur(function () {
        if ($(this).val() == "") {
            $(this).addClass("defaultTextActive");
            $(this).val($(this)[0].title);
        }
    });

    $(".defaultText").blur();
});

控制台输出

value: 3     data: undefined     title: undefined 
value: Maximum     data: undefined     title: undefined 

1 个答案:

答案 0 :(得分:2)

试试这个:

var arr = $("#results-form").serializeArray();

$.each(arr, function (i, input) {

    var value = input.value;
    var $elem = $("[name='" + input.name + "']");
    var data = $elem.attr('data');
    var title = $elem.attr('title');

    console.log("value: " + value  + "     data: " + data  + "     title: " + title );

    // You can process the parameters here now
});