jQuery单击以在字符串上随机化数字仅触发一次

时间:2013-01-15 19:39:58

标签: jquery

我需要在每次点击时随机化字符串的数字部分,因此1个样本应该随机化( sample1 )。我关注的是数据样本部分,但是显示相同点击的值也没有任何好处。我怀疑这个数字只是以下点击的字符串。

JS小提琴sample

HTML:

<input id="input" value="sample1" data-sample="sample1"/>
<button id="button">Randomize</button>

JQUERY:

  var newRandomNumber = (Math.random()*10)+1;
  $("#button").click(function () {
    var value = Math.floor(newRandomNumber);
    $("#input").attr('data-sample', '').attr('data-sample', 'sample' + value).val('sample' + value);
    return false;
  });

非常感谢任何提示。感谢。

2 个答案:

答案 0 :(得分:2)

你需要在每次点击时获得一个新的随机数,而不仅仅是在页面加载上,所以将随机变量放在click函数中:

$("#button").click(function(e) {
    e-preventDefault();
    var newRandomNumber = (Math.random()*10)+1,
        ran_value = 'sample' + Math.floor(newRandomNumber);
    $("#input").data('sample', ran_value).val(ran_value);
});

答案 1 :(得分:1)

在click事件中移动实际随机数生成。的 jsFiddle example

  $("#button").click(function () {
    var newRandomNumber = (Math.random() * 10) + 1;
    var value = Math.floor(newRandomNumber);
    $("#input").attr('data-sample', '').attr('data-sample', 'sample' + value).val('sample' + value);
    return false;
  });