2013-08-30 35 views
0

我有15個按鈕,它是隨機使用ajax數據標記。我接下來需要的是當我點擊這些按鈕時,它會將按鈕文本(只有一個字母)附加到其相應輸入框中的任何東西。每個按鈕和輸入都有一個基於它所在行的唯一ID;每行有15個按鈕。在行1個按鈕基於ajax調用標記的按鈕;點擊後,按鈕文本添加到輸入框

HTML代碼(I具有許多行)。按鈕不是通過jQuery UI按鈕。

<table width="180" border="0"> 
    <tr> 
    <td><button id="R1L1butt" class="letters"></button></td> 
    <td><button id="R1L2butt" class="letters"></button></td> 
    <td><button id="R1L3butt" class="letters"></button></td> 
    <td><button id="R1L4butt" class="letters"></button></td> 
    <td><button id="R1L5butt" class="letters"></button></td> 
    </tr> 
    <tr> 
    <td><button id="R1L6butt" class="letters"></button></td> 
    <td><button id="R1L7butt" class="letters"></button></td> 
    <td><button id="R1L8butt" class="letters"></button></td> 
    <td><button id="R1L9butt" class="letters"></button></td> 
    <td><button id="R1L10butt" class="letters"></button></td> 
    </tr> 
    <tr> 
    <td><button id="R1L11butt" class="letters"></button></td> 
    <td><button id="R1L12butt" class="letters"></button></td> 
    <td><button id="R1L13butt" class="letters"></button></td> 
    <td><button id="R1L14butt" class="letters"></button></td> 
    <td><button id="R1L15butt" class="letters"></button></td> 
    </tr> 
</table> 

這裏是我的最新代碼:

//This is part of ajax success 
//letArr is an array where the data from ajax is stored 
//row2 is also from ajax 
//ranArr is an array that contains the numbers 1-15 
//letterArr is an array that contains the letters from A-Z 
//This part works (except for the bindbuttons function) 

for (var z=0; z<letArr.length; z++) //label random buttons depending on the data from ajax 
{ 
    ran1 = Math.floor(Math.random()*ranArr.length); 
    $("#R" + row2 + "L" + ranArr[ran1] + "butt").text(letArr[z]); 
    bindbuttons(row2, ranArr[ran1], letArr[z]); 
    ranArr.splice(ran1, 1); 
} 

for (var a=0; a<(15-letArr.length); a++) //fill in the other buttons with random letters 
{ 
    ran1 = Math.floor(Math.random()*ranArr.length); 
    ran2 = Math.floor(Math.random()*letterArr.length); 
    $("#R" + row2 + "L" + ranArr[ran1] + "butt").text(letterArr[ran2]); 
    bindbuttons(row2, ranArr[ran1], letterArr[ran2]); 
    ranArr.splice(ran1, 1); 
} 

那麼這樣的綁定功能:

function bindbuttons(c, d, e) 
{ 
    $("#R" + c + "L" + d + "butt").on("click", function() { 
    $("#R" + c + "anstext").val(function (i, v) { 
     return v + e; 
    }); 
    }); 
} 

我曾嘗試以下:
1.我試過的.text之間切換( )和.html()來標記按鈕。兩者都很好。
2.在ajax成功中,使用.on(直接綁定)和$(this).text但console.log甚至沒有顯示任何文本。
3.靜止內AJAX成功,使用值直接從陣列(letArr [Z])和(letterArr [RAN2]),但在兩者的console.log不顯示太以往認爲的.text(letArr [Z])和。文本(letterArr [ran2])
4.最後,把它放在一個函數中,在ajax成功和傳遞參數中被調用,但是這不起作用。

我不知道如何去我想發生,我只是想組合,看看什麼工作。有人能指引我朝着正確的方向嗎?基本上我想要的是,當按鈕被點擊時,無論按鈕的標籤/文本是什麼,它都會被添加到輸入字段中的任何內容中。

在此先感謝!

回答

0

首先,我無法想象這是和它有點讓我好奇。

我也沒有對故障是在你提供的代碼,其中清楚。

我會建議使用輸入類型=「按鈕」,而不是按鈕......這樣你可以很容易地搶值....然後確保他們所有的元素都得到適當的分配值(你可以檢查您的瀏覽器的web開發工具/螢火蟲)....然後得到這樣的工作(不是100%肯定獲得價值的最佳方式......你可能需要通過ID得到它)

function bindbuttons(c, d, e) 
{ 
    $("#R" + c + "L" + d + "butt").on("click", function() { 
    alert(this.value); 
    }); 
} 

然後繼續將其插入到輸入中(應該很容易就像...)

$("#R" + c + "anstext").val(this.value); 
+0

感謝您的回覆ING。 :D這是一款遊戲,類似於「Pictowords」或「1張4張照片」。所有相關信息都在一個表格中,以及以字母(1列,1個字母)分隔的答案。這就是爲什麼我需要它從我的表格中得到的字母填充按鈕,然後在隨後的按鈕上放置隨機字母。我會試一試,讓你知道。再次感謝! – mksl