2012-01-19 46 views
0

基本上我試圖讓生成的隨機號碼在點擊一個按鈕後變成另一個隨機號碼。我也無法弄清楚如何取消選擇所選表單我試着如何使用jQuery下面。JavaScript/JQuery變量需要更改..點擊。刪除舊號碼添加新號碼

var randomNum1 = Math.ceil(Math.random(20)*10000); 
var randomNum2 = Math.ceil(Math.random(20)*10000); 
var randomNum3 = Math.ceil(Math.random(20)*10000); 
var randomNum4 = Math.ceil(Math.random(20)*10000); 
$("#race-again").click(function() 
    { 
    $(".one").css({ marginLeft: "0" }); 
    $(".two").css({ marginLeft: "0" }); 
    $(".three").css({ marginLeft: "0" }); 
    $(".four").css({ marginLeft: "0" }); 
    $("#slide2").animate({ marginTop: "0" }, { duration: 1000 }); 
    $("#slide3").animate({ marginTop: "0" }, { duration: 1000 }); 
    $("#slide4").animate({ marginTop: "0" }, { duration: 1000 }); 
    $("#slide5").animate({ marginTop: "0" }, { duration: 1000 }); 
    $("#betting-money").val("0"); 
    $("#results").hide(""); 
    $("#winner").hide(""); 
    $("#next-end").hide(""); 
//trying to unselect the form input selection 
$("#race input option:selected").attr("selected", "");  
//new random number generated... which doesn't work 
    var randomNum1 = Math.ceil(Math.random(20)*10000); 
    var randomNum2 = Math.ceil(Math.random(20)*10000); 
    var randomNum3 = Math.ceil(Math.random(20)*10000); 
    var randomNum4 = Math.ceil(Math.random(20)*10000); 
    }); 

回答

0

我想你是在不同的範圍內聲明不同的變量。嘗試刪除var您設置的變量,第二次:

randomNum1 = Math.ceil(Math.random(20)*10000); 
randomNum2 = Math.ceil(Math.random(20)*10000); 
randomNum3 = Math.ceil(Math.random(20)*10000); 
randomNum4 = Math.ceil(Math.random(20)*10000); 

而且這將有助於看到你正在試圖取消選擇表格的HTML代碼。

0

在您的事件處理函數中,您聲明瞭與全局變量名稱相同的新局部變量。取而代之的是:

var randomNum1 = ... 

使用:

randomNum1 = ... 

我不知道你想什麼unseelect。如果它是一個輸入元素,它沒有任何選項子元素。如果它是一個select元素,可以有選項子元素,則不能取消選擇某個選項,而是選擇其他選項。

要從輸入元素中刪除焦點使用blur方法:

$("#race input").blur(); 

要取消選擇選擇選項,選擇其他選項:

$("#race select").val("0"); 

順便說一句,你的隨機數計算有缺陷。 Math.random方法不接受參數,它返回等於或大於零且小於1的值。如果使用Math.ceil獲取範圍爲0..10000的數字,則值0會比其他數字少得多。

要在範圍0..10000得到正確的分配數量,使用Math.floor與10001乘以:

randomNum1 = Math.floor(Math.random() * 10001); 

如果你打算讓範圍1..10000因此,您應該添加之一:

randomNum1 = Math.floor(Math.random() * 10000) + 1; 
0

關於到選定的-問題:

使用

$("#race option:selected").prop("selected", false); 
  1. 選項不是輸入(選擇是錯的)
  2. 當您使用attr()您設置的HTML屬性,但這種屬性也只有一個有效值的孩子:"selected"prop()設置"selected"屬性代替,它可能具有值false or true