想要获得文本框值

时间:2014-01-28 13:24:24

标签: javascript jquery forms

我有两个文本框,其值如下:

312,315


315,313


我想获得一个包含所有值的字符串,例如:312,315,313跳过两个字段中的现有值。

我的代码:

var firstbox = $("#firstbox").val();
var secondbox = $("#secondbox").val();
var newvalue = $(firstbox).not(secondbox).get();
    console.log(newvalue);

但它不起作用,我如何使用JQuery获得所需的输出?
感谢。

2 个答案:

答案 0 :(得分:1)

也许这会给你一个正确方向的暗示:

// get comma seperated list of all values
var allValues = $('#firstbox').val() + ',' + $('#secondbox').val();

// make an array out of them
var allValuesArray = allValues.split(',');


// sort out repeated values
// by creating a new array 'distinctValues'
var distinctValues = [],
    currentValue,
    valuesLookup = {};

for (var i = allValuesArray.length - 1; i >= 0; i--) {
    currentValue = allValuesArray[i];

    if (!valuesLookup[currentValue]) {
        valuesLookup[currentValue] = true;
        distinctValues.push(currentValue);
    }
}


// output the result to the console
console.log(distinctValues.join(','));

答案 1 :(得分:1)

你可以连接这两个,用逗号连接它们。 然后你会有一个逗号分隔的字符串,所以你可以用逗号分割,删除任何重复的值,然后重新加入其余的值。

这样的事情:

var firstbox = $("#firstbox").val(),
    secondbox = $("#secondbox").val(),
    boxes = firstbox + "," + secondbox,
    arr = boxes.split(","),
    res = [];

$.each(arr, function(i, el){
    if($.inArray(el, res) === -1){
        res.push(el);
    }
});

$("#res").html(res.join(",").replace(/(^,)|(,$)/g, ""));

Fiddle