Kết thúc chương này, bạn có thể:
Một người hay dùng Web thường xuyên gặp các loại biểu mẫu khác nhau và nhiều khi phải điền thông tin vào các loại biểu mẫu đó. Trong chương này, ta sẽ học cách thêm các phần tử nhập vào một tài liệu HTML và tạo ra một biểu mẫu. Ta cũng sẽ học thêm về khung để phân chia tài liệu.
Form HTML là một phần của tài liệu, nó chứa các phần tử đặc biệt gọi là các điều khiển. Các điều khiển được sử dụng để nhập thông tin từ người dùng và cung cấp một số tương tác. Dữ liệu do người dùng nhập vào có thể được xác nhận hợp lệ nhờ các kịch bản phía máy khách (client-side scripts) và được chuyển đến máy chủ để xử lý thêm.
Việc sử dụng biểu mẫu trên World Wide Web là khá nhiều và liên tục tăng lên. Sau đây là một số cách sử dụng thông thường:
Khi muốn mua một cuốn sách trên Internet, ta phải điền tên, địa chỉ gửi thư, phương thức thanh toán và các thông tin liên quan khác.
Phần tử
ACCEPT = "Internet media type"
ACTION = "URL"
METHOD = (GET | POST ).
Để đưa một biểu mẫu đến chương trình “xử lý biểu mẫu” sử dụng theo phương thức POST
...form contents...
Khi tạo một biểu mẫu, ta có thể đặt các điều khiển lên biểu mẫu để nhận dữ liệu nhập vào từ người dùng. Các điều khiển này được sử dụng với phần tử
Phần tử xác định loại và sự xuất hiện của điều khiển trên biểu mẫu. Các thuộc tính của phần tử này là:
SRC = "URL"
Phần này ta sẽ thảo luận về các loại phần tử nhập cùng với một số đặc t& #237;nh và sự kiện thường dùng.
Loại này tạo ra một điều khiển nút (button)
.
Loại này tạo một điều khiển nhập văn bản có một dòng. Thuộc tính SIZE xác định số ký tự có thể hiển thị trong phần tử. Thuộc tính MAXLENGTH xác định số ký tự tối đa có thể nhập vào phần tử này.
Giá trị Value ở đây để hiển thị nội dung ban đầu của văn bản và để truy xuất văn bản khi biểu mẫu được gửi đi
Loại này tạo ra một điều khiển checkbox. Người dùng có thể chọn một hoặc nhiều checkbox. Khi một phần tử checkbox được chọn, thì cặp tên/giá trị được nhận cùng với biểu mẫu. Giá trị mặc định của checkbox là bật (on) . Phần tử checkbox là một phần tử trên dòng và không cần thẻ đóng.
Loại này tạo ra điều khiển kiểu nút radio. Một điều khiển kiểu nút radio (radio button control) được sử dụng đối với các tập giá trị loại trừ lẫn nhau. Các điều khiển radio trong một nhóm phải có cùng tên. Vào một thời điểm, người dùng chỉ có thể chọn một lựa chọn. Chỉ có nút radio được chọn trong nhóm mới tạo tên cặp giá trị tên/value trong dữ liệu được nhận. Các nút radio nên đặt thuộc thuộc tính giá trị.
Male
Loại này tạo ra một nút submit. Khi người dùng nhấp vào nút Submin, biểu mẫu được chuyển đến vị trí được xác định trong thuộc tính ACTION. Cặp tên/giá trị của nút submit được nhận cùng với biểu mẫu.
Điều khiển này tạo ra một nút submit dạng ảnh. Giá trị của thuộc tính SRC xác định URL của ảnh được đặt trong nút ấy. Khi người dùng nhấp vào điều khiển ảnh này, biểu mẫu được chuyển đi để xử lý. Tọa độ x và y (được đo bằng điểm) tại vị trí nhấp chuột được chuyển đến máy chủ với định dạng sau
Name.x = valueofx
Name.y = valueofy
Trong đó, 'name' là tên của điều khiển
Ta có thể sử dụng nhiều nút submit với các hình ảnh khác nhau thay vì một nút submit chỉ có một hình. Nếu cần trình bày nhiều ảnh ta có thể sử dụng bản đồ ảnh.
Điều khiển này tạo ra nút reset. Khi người dùng nhấp vào nút này, các giá trị của tất cả các điều khiển được tái thiết lập trở về giá trị ban đầu, được xác định trong các giá trị thuộc tính của chúng
Ví dụ sau thể hiện việc sử dụng nhiều kiểu nhập khác nhau.
Sample Form Sample Stock Survey Describe your investment experience beginner intermediate expert Types of Investments you make INPUT TYPE="CHECKBOX" NAME="RESULT_CheckBox-4" VALUE="CheckBox-0">Individual Stocks Options Mutual Funds What is your stock pick for this year?
Describe your investment experience
beginner intermediate expert
Types of Investments you make
INPUT TYPE="CHECKBOX" NAME="RESULT_CheckBox-4" VALUE="CheckBox-0">Individual Stocks Options Mutual Funds
What is your stock pick for this year?
Loại này tạo ra một điều khiển nhập văn bản trên nhiều dòng so với hộp văn bản nhập một dòng. Ta phải xác định kích thước của textarea. Ta cũng phải xác định số dòng, số cột trong textarea. Tuy nhiên, ta phải kết thúc phần tử với thẻ đóng
Điều khiển này tạo ra điều khiển button. Khi người dùng nhấp vào nút Submit, biểu mẫu được nhận để xử lý. Cặp tên/giá trị của nút submit được nhận cùng với biểu mẫu.
Một nút (BUTTON) có loại là submit (type=submit) giống như một phần tử INPUT của loại nút. Sự khác nhau là ở chỗ khi phần tử BUTTON được nhấp vào thì cặp tên/giá trị được nhận cùng biểu mẫu. Một nút (BUTTON) có loại là submit cũng chứa một ảnh và giống một phần tử INPUT có loại là ảnh . Sự khác nhau là ở chỗ phần tử INPUT có dạng một ảnh “phẳng” trong khi phần tử BUTTON thì hiển thị như một nút có hiệu ứng lên / xuống khi nhấp vào.
Ví dụ sau minh họa cho việc sử dụng phần tử TEXTAREA và BUTTON
Sample Form Sample Stock Survey Any Investment Advice for others? Send Reset
Any Investment Advice for others?
Send Reset
Phần tử SELECT được sử dụng để hiển thị một danh sách các lựa chọn cho người dùng. Mỗi lựa chọn được biểu diễn bởi phần tử OPTION. Một phần tử SELECT phải chứa ít nhất một phần tử OPTION. Thành phần được chọn lựa sẽ hiển thị với màu khác so với các thành phần còn lại.
Mỗi lựa chọn trong hộp chọn được lấy giá trị thông qua mô tả văn bản củả nó, xem nó có được chọn hay không.
Mảng Option được tạo ra theo danh sách lựa chọn trong phần tử SELECT. Mỗi lựa chọn có thuộc tính Text và Selected cho phép chúng ta kiểm tra tùy chọn đó có được chọn hay không và truy xuất văn bản của lựa chọn theo thứ tự. Bây giờ ta có thể kiểm tra mỗi phần tử trong mảng và xác nhận nó.
Sample Form Sample Stock Survey How do you buy your stocks? 1) On-Line 2) Touch Tone Trading 3) Broker Assisted 4) Other
How do you buy your stocks? 1) On-Line 2) Touch Tone Trading 3) Broker Assisted 4) Other
Phần tử OPTGROUP được sử dụng để nhóm các lựa chọn vào một cây phân cấp. Ví dụ, bảng nội dung có thể có tên các chương. Các chủ đề và chủ đề con trong một chương có thể được nhóm vào chương đó.
Using the Option Group Introduction to the Internet Introduction to HTML Introduction to Webpage designing Visual Basic–An Introduction Visual Basic Application Development
Introduction to the Internet Introduction to HTML Introduction to Webpage designing Visual Basic–An Introduction Visual Basic Application Development
Phần tử LABEL được sử dụng để gắn thông tin vào các phần tử điều khiển. Ví dụ, phần tử TEXT không có nhãn để xác định rõ nó. Ta có thể gán nhãn vào phần tử TEXT khi trang hiển thị. Ta phải xác định thuộc tính ID của điều khiển mà nó được gán vào.
Using Labels Personal Information First name: Last name:
First name: Last name:
Chúng ta đã thảo luận về phần tử
Job application Application Form Name: Area of Interest Web Designer Web Administrator Web Developer Experience None 1 Year 3 Years 5 Years Comments Type your comments here. Send acknowledgement
Name:
Area of Interest Web Designer Web Administrator Web Developer
Experience None 1 Year 3 Years 5 Years
Comments Type your comments here.
Send acknowledgement
Khi có nhiều phần tử trong một form, chúng ta cần phải điều khiển chúng. Sau đây là các thuộc tính để điều khiển các phần tử
Một phần tử trở thành hoạt động khi nó nhận tiêu điểm. Ví dụ, để nhập văn bản vào phần tử TEXT, tiêu điểm phải nằm trên phần tử đó. Khi phần tử mất tiêu điểm, nó sẽ không hoạt động nữa. Cách đơn giản nhất để đặt tiêu điểm cho phần tử là ta kích vào nó bằng cách sử dụng chuột, joystick ... hoặc dùng bàn phím để đặt.
Thuộc tính tabindex của một phần tử xác định trình tự phần tử nhận tiêu điểm thông qua bàn phím. Ở đây bao gồm các phần tử được lồng vào các phần tử khác. Giá trị có thể là bất cứ số nào giữa 0 và 32767. Tiêu điểm bắt đầu từ phần tử có giá trị tabindex thấp nhất. Nếu ta gán cùng một giá trị tabindex cho hơn một phần tử, thì các phần tử nhận tiêu điểm theo thứ tự nó xuất hiện trong tài liệu.
Nếu phần tử nào không hỗ trợ thuộc tính tabindex, nó sẽ là phần tử nhận tiêu điểm cuối cùng. Nếu ta vô hiệu hóa một phần tử, nó sẽ không được liệt kê vào thứ tự tab – và nó sẽ không nhận được tiêu điểm.
Web Designer
Thuộc tính này được sử dụng để gán phím truy cập cho phần tử. Phím truy cập là một ký tự và thường được sử dụng cùng với phím ALT. Khi người dùng nhấn phím truy cập, phần tử được xác định sẽ nhận tiêu điểm và bắt đầu hoạt động.
Name: Type your comments here
Nếu làm việc với trình soạn thảo văn bản, ta sẽ thấy rằng nếu không mở tài liệu nào thì các tùy chọn lưu và định dạng sẽ bị vô hiệu hóa. Đối với trang Web, ta có thể vô hiệu hóa các phần tử hoặc để ở trạng thái chỉ đọc (read-only) nếu không muốn người dùng truy cập chúng. Ví dụ, khi hiển thị một biểu mẫu, ta có thể vô hiệu hóa nút “Submit” cho đến khi người dùng nhập dữ liệu vào. Thuộc tính vô hiệu hóa được sử dụng để điều khiển truy cập một phần tử. Khi một phần tử bị vô hiệu hóa, nó không được liệt kê trong thứ tự tab. Do vậy, điều khiển không nhận được tiêu điểm và cuối cùng là các giá trị của điều khiển bị vô hiệu hóa không được chuyển đi cùng với biểu mẫu. Một điều khiển bị vô hiệu hóa có thể được kích hoạt nhờ các script lúc thực hiện.
Khung chia một cửa sổ trình duyệt thành nhiều vùng riêng biệt, mà mỗi vùng có thể hiển thị một trang riêng biệt có thể cuốn được. Mỗi khung là một cửa sổ trong cửa sổ chính. Ví dụ, ta có thể sử dụng ba khung trong trang Web, một làm biểu ngữ (banner), một làm menu điều hướng và một để hiển thị dữ liệu. Mỗi khung có thể được tạo, thay đổi và cuốn độc lập nhau.
Một trang có thể có một hoặc nhiều khung. Một số lý do sử dụng khung:
Tuy nhiên, mặt hạn chế của việc sử dụng khung trong trang Web là: không phải tất cả các trình duyệt đều hỗ trợ khung, ví dụ, IE phiên bản 2.0 hoặc trước đó và Netscape 1.2 hoặc trước đó. Để nội dung vẫn hợp lệ mà người sử dụng không cần quan tâm đến trình duyệt có hỗ trợ khung hay không, người thiết kế cần phải cung cấp một cách khác để truy cập vào nội dung.
Một tài liệu HTML chuẩn có phần HEAD và BODY. Một tài liệu HTML sử dụng khung thì có phần HEAD và phần FRAMESET. Phần FRAMESET xác định cách trình bày trong cửa sổ người dùng. Ta không thể sử dụng phần tử BODY và FRAMESET cùng với nhau. Trình duyệt chỉ nhận phần tử đầu tiên xuất hiện trong tài liệu và bỏ qua phần tử sau. Nghĩa là, nếu bạn sử dụng phần tử BODY, thì phần tử FRAMESET sau đó sẽ bị bỏ qua và ngược lại.
Khung được tạo ra bằng cách sử dụng phần tử FRAMESET. Các thuộc tính như sau:
Phần tử FRAME xác định hình thức và nội dung của một khung trong FRAMESET. Ví dụ sau đây tạo hai khung bằng nhau, chia đôi cửa sổ.
Two Equal Frames
Kết quả ví dụ 19
File x.html và y.html được lưu cùng thư mục với file .html chính ý
Các thuộc tính của FRAME bao gồm:
Ta không thể đóng cửa sổ của khung. Khung được đóng khi cửa sổ tạo ra nó bị đóng lại. Khung không có thanh trạng thái vì vậy ta phải sử dụng thanh trạng thái của khung chính trong tài liệu.
Scrolling in Frames
Resizing Frames Kết quả của ví dụ 21
Đoạn mã sau tạo 3 cột: Cột 2 có độ rộng là 250 pixel, cột 1 chiếm 25% khoảng còn lại và cột 3 chiếm 75% khoảng còn lại
Using Frames
Chú ý trong ví dụ 9, ta sử dụng phần tử FRAMESET lồng nhau (Nested framesets). Ta có thể tạo ra các frameset (tập khung) lồng nhau ở bất kỳ mức nào như ví dụ minh họa dưới đây:
Nested Frames
Khi tạo liên kết trong trang Web, ta có thể thiết lập một khung như một mục tiêu của liên kết (link). Trình duyệt tuân theo các bước sau:
Thuộc tính TARGET được sử dụng để xác định tên khung mà tài liệu được mở trong đó. Khi tạo khung, ta cần phải đặt thuộc tính tên. Tên này được dùng khi tạo liên kết. Sau khi thay đổi nội dung của một khung thì định nghĩa frameset ban đầu bị mất đi. Nếu có nhiều liên kết đến cùng một đích, ta có thể thiết lập một TARGET mặc định trong phần tử BASE . Sau đó, việc xác định thuộc tính TARGET trong mỗi phần tử sẽ không cần thiết nữa.
Link.html The file, X The file, Y
The file, X
The file, Y
Nếu trình duyệt không hỗ trợ khung, với tư cách là người phát triển ứng dụng ta nên cung cấp một cách khác để hiển thị nội dung. Phần tử NOFRAMES được sử dụng để làm việc đó. Nó chỉ hoạt động trong trình duyệt không hỗ trợ khung.
Frames are not being displayed. Click here for a non-frames version
Phần tử IFRAME được sử dụng để tạo khung trên dòng (inline frame) hay khung nổi (floating frame). Ta có thể tạo và chèn một khung vào một khối văn bản. Khi trình duyệt không hỗ trợ khung thì nội dung nằm trong thẻ IFRAME bị trả lại. Khung trên dòng (inline frame) không thể thay đổi kích thước.
It has been good fun. You have been learning about frames [The browser does not support frames or is currently configured not to display frames. These are the contents] The above is an inline frame
It has been good fun. You have been learning about frames [The browser does not support frames or is currently configured not to display frames. These are the contents]
The above is an inline frame
Trang này được chủ ý để trống