【问题标题】:JQuery: Insert a random string of 55 chars into a text boxJQuery:将55个字符的随机字符串插入文本框
【发布时间】:2011-08-11 22:23:39
【问题描述】:

我有一个文本输入字段,在 DOM 上已准备好,我想预先填充一些随机文本,我不想每次重新加载页面时都使用相同的文本,文本之间的细微差别会没事。

这里是 JQuery 字段:

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

我希望在上面的字段中填充一些随机文本,最大:55 个字符,我使用的是来自 Dynamic Drive 的以下脚本,这适用于网页内容,但不适用于我想用 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 个字符。

【问题讨论】:

    标签: javascript jquery random


    【解决方案1】:

    当然,只需将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)]+" ");
    });
    

    【讨论】:

    • 55 个字符?它会产生 55 个随机字符吗?
    • @Rakesh:“带有一些随机文本(我可以指定)”“文本之间稍有变化就可以了。”按理说他不想要actual gobbledegook。 OP 的意思不是“随机”,而是“随机切换”。
    【解决方案2】:

    我假设您只想要一个在一定长度以下的胡言乱语中的句子。我做了一个小的 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(source, [options])

    来源字符串数组。

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

    选项

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

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

    示例

    var gibberish=["foo",
        "bar",
        "John Skeet",
        "Stackoverflow",
        "Hire me: kitsunde@gmail.com"];
    
    $("input").valRoulette( gibberish, {'max': 8 } );
    

    Working version on JsLint.

    【讨论】:

    • @PHP_Guy - 我只是注意到我得到的字符串大于长度而不是更小。我更新了它,让它按你想要的方式工作。
    【解决方案3】:

    你试过这个吗??

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

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

    【讨论】:

      【解决方案4】:

      不确定您的示例中的单词是什么,但据我了解,您可以轻松地在 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);
      })
      

      对此有一些说明。如果您传递一个非常大的值并且它抓取一个小于传递值的字符串,它将简单地返回整个字符串。如果字符串的内容不需要有任何含义,您可能只想创建一个随机单词的大列表,然后将足够长的单词拼凑在一起。

      【讨论】:

      • @PHP_Guy,我需要更好地理解这一点。如果您提供要从中拉出的字符串,那么您如何传递您想要的长度?它应该只是选择一个随机字符串,然后将其截断为您想要的长度吗?
      • @PHP_Guy,这样的事情怎么样:......无法弄清楚如何在这里格式化代码,编辑我的答案。
      • 把我的复选标记拿走了,给了我答案的副本!哈
      猜你喜欢
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2015-04-04
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      相关资源
      最近更新 更多