2015-09-16 37 views
1

我是JSF的新手,我目前正在基於它構建一個網絡拍賣類型的應用程序。我還使用了Bootsfaces中的多個元素。我想要做的是有一個inputText,其中出價者可以輸入他們的出價,然後按下一個會觸發Bootsfaces模式的按鈕。在模式內部,投標人將不得不通過按下最終「提交」他的出價的命令按鈕來確認他實際上想要出價。爲了這個工作(如果我已經正確理解了JSF的工作原理),我需要在同一個h:form元素中的inputText和commandButton。唯一的問題是,無論何時我將模態代碼放入窗體中,當按下觸發它的按鈕時,模式都不會顯示出來。我的代碼如下:Bootsfaces模式不工作<h:form>

<h:form> 
    <b:inputText class="bid1" value="#{detailedViewBean.current}" placeholder="Type the amount you would like to bid..." style="width: 90%" onfocus="enableButton('atrigger1')" onblur="bidAmount(this.value, '#{detailedViewBean.previous}')"> <!--current highest bid--> 
     <f:facet name="prepend"> 
      <h:outputText value="$" /> 
     </f:facet> 
     <f:facet name="append"> 
      <b:buttonGroup> 
       <a id="atrigger1" class="btn btn-primary" href="#amodal1" data-toggle="modal">Bid!</a> 
      </b:buttonGroup> 
     </f:facet> 
    </b:inputText> 

    <b:modal id="amodal1" title="Warning!" styleClass="modalPseudoClass"> 
     <p id="amodal1body"> Are you sure ?</p> 
     <f:facet name="footer"> 
      <b:button value="Close" dismiss="modal" onclick="return false;"/> 
      <b:commandButton value="Yes, submit my bid!" id="modalbidbutton" type="button" class="btn btn-primary" data-dismiss="modal" data-toggle="modal" data-target="#amodal2"/> 
     </f:facet> 
    </b:modal> 
<h:form> 

有誰知道爲什麼會發生這種情況,或者我該如何糾正它?

+0

嘗試從'Bid!' – Shehary

+0

嘗試移除'disabled'我有它的目的是:P當投標人輸入正確金額(例如,高於當前最高出價的正數)時啓用鏈接(通過Javascript)。這不是問題。 – Rayan

+0

okey我檢查了小提琴和禁用不讓顯示模式,所以這就是爲什麼我問 – Shehary

回答

3

<b:modal />移動到表單中可以修改其ID。這是JSF框架的一個煩人的屬性:它認爲id始終是唯一的 - 實現該目標的措施之一是將表單的id預先加到<b:modal >的id上。大多數情況下,這種方式非常好,但有時需要HTML標識。你的按鈕使用jQuery表達式,所以這是其中的一種。 JSF使用冒號作爲分隔符,而jQuery不能很好地處理冒號。

長話短說,我建議使用模態對話框的CSS類而不是ID。你已經給它一個僞CSS類。此課程不包含任何佈局信息。相反,你可以在按鈕使用它:

<a id="atrigger1" class="btn btn-primary disabled" 
     href=".modalPseudoClass" data-toggle="modal">Bid!</a> 

TL; DR:如果您在使用ID麻煩,用CSS僞類表達式(「.pseudoClass」取代你的jQuery表達式(「#ID」) )。