2012-03-16 39 views
0

我想顯示通過輸入收集的數據的結果。這是我所做的,但是在完成填充字段之後並且函數返回true後,它不起作用。表單驗證後的新HTML頁面

<form name ="reg" action ="" onsubmit ="return checkValidation(this)">//CODE... 

下面是被調用的函數:

function checkValidation() 
    { 
    var valid = isValidName(); 
     if(valid) 
     valid = isValidEmail(); 
     if(valid) 
     valid = isValidPass(); 
     if(valid) 
     valid = isValidRadio(); 
     if(valid) 
     { 
     document.write(document.reg.name.value); 
     } 
     return valid; 
    } 

請告訴我這個問題?我如何使用這些數據打開一個新頁面? 謝謝!

+0

也許忘了提交? :) – Panagiotis 2012-03-16 19:01:40

+0

@Panagiotis我提交了表格,顯然我不會除了要執行的新html,如果我沒有做任何事情 – idish 2012-03-16 19:04:29

+1

@Panagiotis他在調用onsubmit,@idish你需要返回false如果它是真的將刷新頁面並且不會打印任何內容 – 2012-03-16 19:05:28

回答

1

使用此對您調用的函數:

function checkValidation() 
{ 
var valid = isValidName(); 
    if(valid) 
    valid = isValidEmail(); 
    if(valid) 
    valid = isValidPass(); 
    if(valid) 
    valid = isValidRadio(); 
    if(valid) 
    { 
    document.write(document.reg.name.value); 
    return false; 
    } 
    return valid; 
} 

你實際上是用回假做什麼;因爲onSubmit()事件需要返回true才能繼續實際提交到action =「」中定義的頁面(在您的情況中爲none,這會導致白頁),因此將取消提交事件。

還要考慮到在返回false(這些過程發生在瀏覽器中)的時候,您已經處理了前端變量(或顯示它們)。如果你希望實際的數據被髮送到服務器(並且在不重新加載的情況下在同一頁面上),你應該使用ajax調用你的服務器端腳本。

+0

非常感謝您的幫助,順便說一下,如果在返回false之前創建另一個document.write(...),則此代碼不起作用;如果你能解釋我爲什麼會這麼好,無論如何我接受你的答案,再次感謝! – idish 2012-03-16 19:37:13

+0

你確定嗎?把一個document.write(「\ n」+ document.reg.name.value);在返回錯誤之前查看它是否正常工作。 – Panagiotis 2012-03-16 19:43:30

0
function checkValidation() 
{ 
var valid = isValidName(); 
    if(valid) 
    valid = isValidEmail(); 
    if(valid) 
    valid = isValidPass(); 
    if(valid) 
    valid = isValidRadio(); 
    if(valid) 
    { 
    document.write(document.reg.name.value); 
    } 
    // here if valid is true then page will reload itself and 
    // document.write(document.reg.name.value); will not show any result 

    return valid; 
} 
+0

我現在明白了這個問題,那麼我應該在哪裏放這個代碼呢? – idish 2012-03-16 19:11:57

+0

您是否需要打印僅在出現錯誤或總是出現 – 2012-03-16 19:14:41