2014-03-28 119 views
1

嗨:)我有一個快速的JavaScript問題,因爲它不是我的強項,我已經搜索了其他論壇,但似乎無法得到它的工作。情況是我有一個HTML表單,其中包含由JQuery Datepicker(id=datepicker),「獲取數據」按鈕(id=getdata)和其他3個按鈕Edit(id=edit),Save(id=savechanges)和Delete(id=delete)驅動的文本框。以及另一個文本框和textarea。Javascript重新啓用按鈕

當用戶選擇一個日期並點擊「獲取數據」按鈕時,文本框和文本區會填充數據庫中的數據。這工作正常。在來自數據庫的數據填充文本框和文本區之前,在HTML表單中創建它們時,使用"disabled"屬性禁用編輯,保存和刪除按鈕。我的問題是我想在選擇日期後重新啓用這些按鈕。我的代碼到目前爲止;

//Check if the request method is POST and if a date has been selected 
if (($_SERVER["REQUEST_METHOD"] == "POST") && (isset($_POST['getdata']))) 
{ 
    if ($_POST['datepicker'] != "") 
    { 
    $HistoryDate = $_POST['datepicker']; 
    $HistoryQuery = "SELECT Weight, Notes FROM `".$username."weight` WHERE Date = ' $HistoryDate';"; 
    $RunQuery = mysql_query($HistoryQuery) or trigger_error(mysql_error().$HistoryQuery); 
    $details = mysql_fetch_array($RunQuery); 

    $savedWeight = $details["Weight"]; 
    $savedNotes = $details["Notes"]; 

    ?> 
    <script type="text/javascript"> 
    document.getElementById("edit").disabled=false; 
    document.getElementById("savechanges").disabled=false; 
    document.getElementById("delete").disabled=false; 
    return false; 
    </script> 
    <?php 
    } 
    else 
    { 
    $GetDataError = "*You must select a date!"; 
    } 
} 

上述代碼中的所有內容除javascript部分外都適用。任何幫助將不勝感激,謝謝!

HTML如下;

<div id="left"> 
<div id="border"> 
<h3 class="heading">Weight History</h3> 
<p class="heading">Select a Date to View Your Weight Record:</p> 
<form method="post" action=""> 
<table> 
    <tr> 
     <td><span class="error"><?php echo $GetDataError;?></span> 
     <p>Date: <input type="text" id="datepicker" name="datepicker" /></p></td> 
     <td><br><input name="getdata" style="width:75px; position:relative; font-size:14px; left:-100px; top:-7px; height:25px;" type="submit" id="getdata" value="Get Data" /></td> 
    </tr> 
    <tr> 
     <td>Your Weight was: (lbs)</td> 
    </tr> 
    <tr>  
     <td><input type="text" id="record" name="record" disabled="disabled" value="<?php echo $savedWeight; ?>" /></td> 
    </tr> 
    <tr> 
     <td>Your Notes were:</td> 
    </tr> 
    <tr> 
     <td><textarea name="oldnotes" cols="40" rows="13" MaxLength="300" disabled="disabled" id="oldnotes"><?php echo $savedNotes; ?></textarea></td> 
    </tr> 
    <tr> 
      <td><br><input name="print" style="width:75px; position:relative; font-size:14px; left:2px; height:25px;" type="submit" id="print" value="Print" onClick="window.print()" /></td> 
      <td><br><input name="edit" disabled style="width:75px; position:relative; font-size:14px; right:258px; height:25px;" type="submit" id="edit" value="Edit" onclick="document.getElementById('oldnotes').disabled=false; document.getElementById('record').disabled=false; return false;" /></td> 
      <td><br><input name="savechanges" disabled style="width:75px; position:relative; font-size:14px; right:250px; height:25px;" type="submit" id="savechanges" value="Save" /></td> 
      <td><br><input name="delete" disabled style="width:75px; position:relative; font-size:14px; right:240px; height:25px;" type="submit" id="delete" value="Delete" /></td> 
    </tr> 

</table> 
</form> 
</div> 
</div> 
+0

'return'只能放在一個函數裏面,只是將其刪除。 – Teemu

+0

這些設置爲假的外觀正確。返回false可能會給你一個錯誤。但設置應該可能已經運行,除非你的js引擎首先解析整個塊並且不會運行任何它。擺脫返回錯誤,看看你是否仍然有同樣的問題。如果你這樣做,添加你的HTML元素,以更清晰的問題。 – williambq

+0

我刪除了'返回false',但仍然沒有運氣,我添加了HTML以獲得更清晰的建議。 – user3266484

回答

3

根據http://jsfiddle.net/2Gwt5/2/兩個:

document.getElementById("edit").disabled=false; 


document.getElementById("edit").removeAttribute("disabled"); 

工作。 嘗試刪除「返回false」,但如果這不起作用,您的JavaScript可能不會運行。我會爲測試目的添加警報,並查看您的代碼是否執行。

0

嘗試使用.removeAttribute

document.getElementById("edit").removeAttribute("disabled"); 
    document.getElementById("savechanges").removeAttribute("disabled"); 
    document.getElementById("delete").removeAttribute("disabled"); 
+0

感謝您的建議,但沒有運氣:/ – user3266484

1

用途:

document.getElementById("ID").removeAttribute("disabled"); 
+2

我想你的意思是['removeAttribute()'](https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttribute),[ 'removeAttr()'](http://api.jquery.com/removeAttr/)是一個jQuery方法,而不是DOM。 –