2013-01-15 12 views
0

我需要在每次點擊時隨機化字符串的數字部分,因此1個樣本應隨機化(sample1)。我關心的是數據樣本部分,但是顯示數值以及顯示相同的點擊並不會帶來任何好處。我懷疑下面的點擊次數只是字符串。jQuery點擊以隨機化字符串上的數字只觸發一次

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; 
    }); 

任何暗示是非常讚賞。謝謝。

+1

的的Math.random()在聲明和VAR newRandomNumber的初始化僅調用一次。每次調用newRandomNumber都是對該值的調用,而不是調用。這就是爲什麼你只有一次。 – user829323

回答

1

移動實際的隨機數生成的點擊事件中。 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; 
    }); 
2

你需要獲得每次點擊一個新的隨機數,不只是在頁面加載,所以將隨機變量的點擊功能裏面:

$("#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); 
}); 
+0

非常感謝。現在這樣做很好。 – swan