2015-06-22 53 views
0

2天前,以netbeans和wamp服務器啓動後的第一個問題。只有一些桌面vb背景,所以我的行話可能會關閉。在vb中,我想把焦點放在控件上。php,將頁面滾動到指定的html控件的表格

我有很長的一段時間,如很多滾動,HTML中的網頁形式,顯示我想要的方式。大約有300個控件,幾乎所有的複選框。

當在窗體底部單擊提交按鈕時,我想查找任何不完整的數據,將頁面滾動到該控件並給用戶一條消息,以便我不插入未完成的記錄。

我該怎麼做?

+0

它們的形式可能由PHP生成,驗證和滾動必須在Javascript中完成客戶端。您還應該運行驗證服務器端,因爲用戶控制着客戶端。 –

+0

謝謝Dan,javascript是。我曾經以爲我只需要PHP和MySQL,當我開始,現在我添加JavaScript到HTML和CSS。 – tiredeyes

回答

0

在表格中,「必要」的屬性添加到每個輸入標籤。 EX:

<input type="text" required> 

當表單提交,與「必要」屬性的第一輸入標籤將被滾動到,並且用戶將被通知。

0

你在找什麼叫做驗證。您應該使用PHP驗證服務器上的數據,以確保數據符合您定義的條件(因爲數據可能來自操縱表單並且用戶可以停用JavaScript)。您還應該查看轉義數據,例如mysqli_real_escape_string以防止SQL注入(惡意用戶在表單中輸入SQL語句以更改/暴露數據庫中的數據的攻擊)。你應該清理你的數據。

但是,這是所有的服務器端。你也希望有一個良好的用戶體驗,甚至不發送數據到服務器,除非是有效的。這是在客戶端使用javascript完成的。好處是:沒有頁面加載的即時反饋。但它與安全性無關,因爲它很容易操縱或關閉javascript。

我會推薦使用jQuery,然後像jQuery Validation這樣的插件。對於滾動部分,您可以使用jQuery scrollto。你可以結合jQuery驗證的這兩個with a callback。例如(只是一個快速和骯髒的例子):

$(".form-selector").validate({ 
    invalidHandler: function(event, validator) { 
    // 'this' refers to the form 
    var errors = validator.numberOfInvalids(); 
    if (errors) { 
     var message = errors == 1 
     ? 'You missed 1 field. It has been highlighted' 
     : 'You missed ' + errors + ' fields. They have been highlighted'; 
     $("div.error span").html(message); 
     $("div.error").show(); 
     // Now scroll to the first error message 
     var first_element = validator.errorList[0].element; 
     $(window).scrollTo(first_element); 
    } else { 
     $("div.error").hide(); 
    } 
    } 
}); 

但最好的事情是開始與jQuery的教程,然後挖成。

相關問題