2012-11-24 54 views
0
function insertQuestion(form) { 

var x = "<img src='Images/plussigndisabled.jpg' width='30' height='30' alt='Look Up Previous Question' class='plusimage' name='plusbuttonrow'/><span id='plussignmsg'>(Click Plus Sign to look <br/> up Previous Questions)</span>" ; 

    if (qnum == <?php echo (int)$_SESSION['textQuestion']; ?>) { 

    $('#mainPlusbutton').html(x); // no need to create a jQuery object 

} 

//append rows into a table code, not needed for this question 

} 

<form id="QandA" action="<?php echo htmlentities($action); ?>" method="post"> 

<table id="question"> 

<tr> 
<td colspan="2"> 
<a onclick="return plusbutton();"> 
<img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" id="mainPlusbutton" name="plusbuttonrow"/> 
</a> 
<span id="plussignmsg">(Click Plus Sign to look up Previous Questions)</span> 
</td> 
</tr> 
</table> 

<table id="questionBtn" align="center"> 
<tr> 
<th> 
<input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question" onClick="insertQuestion(this.form)" /> 
</th> 
</tr> 
</table> 

</form> 

上面的代碼假設發生的事情是用戶單擊「添加問題」按鈕,這會將問號附加到表中。現在假設發生的是,如果if語句在jquery函數中被滿足,那麼它假設用Images/plussigndisabled.jpg替換加號按鈕圖像Images/plussign.jpg。但它並沒有這樣做。如何用普通圖像替換圖像按鈕

所以我的問題是,用另一個圖像按鈕替換圖像按鈕的最佳方式是什麼?同樣在文檔就緒功能中,我需要它回到顯示Images/plussign.jpg按鈕。

+0

[ 'textQuestion']; ? 或者,稍微複雜一點,你可以調試腳本,看看它是否真的符合if語句嗎? –

+0

@KiroConeski if語句是definetly匹配的。我沒有將它包含在上面的代碼中,但是當達到if語句時我包含了一些禁用屬性,並且它禁用了屬性。會話變量只包含問題總數 – user1819709

回答

1

可以使用replaceWith()方法,如果你想用新的HTML更換整個按鈕

$('#mainPlusbutton').replaceWith(x); 

API參考:http://api.jquery.com/replaceWith/

我懷疑你真的只想要替換的按鈕的src ,同時禁用它可以用attr()prop()方法完成

var newImage='Images/plussigndisabled.jpg'; 

$('#mainPlusbutton').attr('src',newImage).prop('disabled',true); 

請注意,ID必須是在一個頁面中唯一的,因此,如果您正在複製行,你將需要修改來使用類和修改橫向改變你儲存什麼在$ _SESSION適當的元素

+0

我遇到的唯一問題是它沒有禁用點擊。我點擊圖片,它仍然執行點擊方法。如果你看圖像按鈕的html,它會執行一個'onclick =「return plusbutton();''函數。我如何禁用此功能? – user1819709

+0

完全刪除inline'onclick'並使用jQuery,然後使用jQuery點擊處理程序使用'prop()'方法檢查按鈕是否禁用。否則,只需使用我的第一個解決方案替換html – charlietfl

1

該代碼給了我一個簡短的頭痛。

您的代碼

$('#mainPlusbutton').html(x); 

指圖像標籤。您調用html應該取代內部的,但圖片標籤不能包含任何內容,所以沒有什麼可替代的。

+0

你知道我應該改變這個還是你有更好的主意來解決這個問題? – user1819709

+0

將id mainPlusbutton移動到圖像父項(錨點/鏈接標記)。這樣,您可以在禁用的圖像之間來回切換或不切換.---但是您也有一個span標記,您也可能想要在那裏....你想替換嗎? ...如果你想要我的「更好」的想法,我可能甚至不會亂交換內容;我只是選擇通過CSS顯示什麼,並在某處更改類屬性。 – JayC

0

我會建議使用span或div來包含此圖像標記。

<img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" id="mainPlusbutton" name="plusbuttonrow"/> 

並用此更改腳本。

$('#mainPlusbutton').parent().html(x);