2011-10-19 17 views
5

Tôi không tập trung nhiều vào javascript nên tôi gặp sự cố khi nhận tập lệnh sau để hoạt động. Tôi cần kiểm tra xem tên đã nhập có nằm trong thư hay không.Chỉ mục JavascriptOf

<input type="hidden" id="Message" value="<%= rsDetail.Fields("Message") %>"> 
<input type="hidden" id="FirstName" value="<%= rsDetail.Fields("FirstName")%>"> 

<script type="text/javascript"> 
<!-- 
function NameCheck(){ 
var FirstName=document.getElementByID('FirstName'); 
var CardMessage=document.getElementByID('Message'); 
var aPosition = CardMessage.indexOf('FirstName'); 

if (aPosition == -1) 
alert("Name Not In Message."); 
} 
--> 
</script> 

<a href="NextPage.asp" onClick="NameCheck();">Proceed</a> 
+0

Và vấn đề ở đâu? – campino2k

+0

'document.getElementById()' trả về phần tử, không phải giá trị của phần tử. Để có được giá trị của phần tử, bạn có thể làm 'document.getElementById ('someId'). Value'. – aroth

Trả lời

8

Nó có vẻ như bạn đang cố gắng để có được những giá trị của đầu vào FirstName. getElementById() chỉ trả về chính nút đó. Thay vì truy cập giá trị của nó:

var FirstName = document.getElementById('FirstName').value; 
var CardMessage = document.getElementById('Message').value; 

// Then use the variable `FirstName` instead of the quoted string 
var aPosition = CardMessage.indexOf(FirstName); 

// Best practice would be to use === for strict type comarison here... 
if (aPosition === -1) 
    alert("Name Not In Message."); 
} 

Ngoài ra, lưu ý rằng bạn đã sai chính tả getElementById, với số vốn D vào cuối nơi nó nên là chữ thường.

+0

Cảm ơn Michael, hãy làm việc! –

+0

Làm cách nào để sửa đổi mã để tôi nhận được tùy chọn có không có trên cảnh báo khi có cho phép người dùng tiến hành nhưng không giữ chúng trên trang. –

+0

@Darren Cook thay vì 'alert()' sử dụng 'confirm()' và trả về giá trị của nó: 'return confirm ('Name not in message');' –

1

'FirstName' với trích dẫn là chuỗi, không phải là biến FirstName. Bạn cần:

// remove the quote, pass the variable FirstName instead of string 'FirstName' 
var aPosition = CardMessage.indexOf(FirstName); 

EDIT: Tôi đã bỏ lỡ hai điều trước đây. Trước tiên, bạn cần phải nhận được giá trị của nút, và thứ hai là chữ hoa D. Vì vậy, các mã đúng là:

var FirstName = document.getElementById('FirstName').value; 
var aPosition = CardMessage.indexOf(FirstName); 
0

document.getElementByID nên document.getElementById

-1

Hãy thử:

var FirstName=document.getElementByID('FirstName'); 
var aPosition = CardMessage.indexOf(FirstName); 

Trong dụ của bạn, bạn đang tìm kiếm chuỗi sau FirstName không phải là giá trị của biến FirstName

1

gì này bạn đang cố gắng, tôi suy nghĩ.

var FirstName=document.getElementById('FirstName').value; 
var CardMessage=document.getElementById('Message').value; 
var aPosition = CardMessage.indexOf(FirstName); 
1

Cách tốt nhất để sử dụng jQuery. Mã của bạn chúng tôi có thể rút gọn thành tối đa 2 dòng:

$("#click").click(function() { 
    var found = $('#Message').val().indexOf($("#FirstName").val()); 
    console.log(found); 
});