JQuery:在文本框中插入一个55个字符的随机字符串

时间:2011-04-24 17:10:07

标签: javascript jquery random

我有一个文本输入字段,在DOM准备好了,我想预先填充一些随机文本,我不希望每次重新加载页面时都有相同的文本,只是文本之间会略有不同没事。

这是JQuery字段:

// on dom ready
    $("#Title").val("This is the Title");
// end dom ready

我希望上面的字段填充一些随机文本,MAX:55个字符,我使用的是动态驱动的以下脚本,这适用于网页内容,但不适用于我想用JQuery做什么。

function filltext(words){
var gibberish=["This is just some filler text", "Some Random Text Here", "Even more Random Text"]
for (var i=0; i<words; i++)
document.write(gibberish[Math.floor(Math.random()*3)]+" ")
}

<小时/> 基本上,我希望在DOM Ready上预先填充输入字段,并使用一些随机文本(我可以指定)。但不能超过55个字符。

4 个答案:

答案 0 :(得分:2)

当然,只需将document.write替换为$('#Title').val

var gibberish = [
   "This is just some filler text",
   "Some Random Text Here",
   "Even more Random Text"
];

$(function() {
   $('#Title').val(gibberish[Math.floor(Math.random()*3)]+" ");
});

答案 1 :(得分:1)

我假设你只想要一个长度不足的胡言乱语的句子。我做了一个小的jQuery插件,用于根据一些选项随机选择和分配值。

jQuery.valRoulette

(function( $ ){
    $.fn.valRoulette = function( source, options ){ 
        options = $.extend({'max' : 99999999, 'min': 0}, options);
        var items = $(source).filter(function(){
            return options.max > this.length &&
                   options.min < this.length;});
        var index = Math.floor(Math.random()*items.length);
        return this.val( items[ index ]);
    };
})(jQuery);

jQuery.valRoulette(来源,[选项])

来源字符串数组。

选项设置键/值对,指示文本的属性应该是什么。

选项

max - 要设置的字符串的最大长度。

min - 要设置的字符串的最小长度。

实施例

var gibberish=["foo",
    "bar",
    "John Skeet",
    "Stackoverflow",
    "Hire me: kitsunde@gmail.com"];

$("input").valRoulette( gibberish, {'max': 8 } );

Working version on JsLint

答案 2 :(得分:0)

不确定你的例子中有哪些单词,但根据我的理解,你可以轻松地使用与你的jquery相同的技巧。

var gibberish=["This is just some filler text", "Some Random Text Here", "Even more Random Text"];

$(function(){
   $("#Title").val(gibberish[Math.floor(Math.random()*gibberish.length)]);
})

编辑:如果要将字符串截断为一定长度,请尝试以下操作:

var gibberish=["This is just some filler text", "Some Random Text Here", "Even more Random Text"];

function setRandomText(charLength){
    $("#Title").val(gibberish[Math.floor(Math.random()*gibberish.length)].substring(0,charLength));
}

$(function(){
   setRandomText(9);
})

虽然有一些注意事项。如果传递一个非常大的值并且它抓取一个小于传递值的字符串,它将只返回整个字符串。如果字符串的内容不需要有任何意义,那么您可能只想创建一个大的随机单词列表,并将它拼凑到一起,只要你想要的话。

答案 3 :(得分:0)

你试过这个吗?

你可以在数组中包含一个大文本

http://leo.dolcepixels.com/learning/jquery/random-text-from-array-with-jquery/