Ike Evens Ответов: 2

Снимите переключатель на странице обновить


У меня есть две переключатели, которые вызывают два разных сценария входа в систему переключатель 1 для розничного онлайн-банкинга и переключатель 2 для бизнес-онлайн-банкинга. Все работает нормально, за исключением тех случаев, когда страница обновляется. Если вы выберете переключатель 2 для бизнес-онлайн-банкинга при обновлении страницы, переключатель 2 останется отмеченным, но он вызывает сценарий входа для розничного онлайн-банкинга, поэтому использование учетных данных для входа в Бизнес-Онлайн-банкинг не будет работать.

Если бы переключатель 1 мог быть установлен по умолчанию при обновлении страницы или вообще не иметь никаких переключателей, было бы неплохо. Возможен ли какой-либо из этих вариантов?

Что я уже пробовал:

Вот мой код.

<html>
<head>
</head>

<body>

<label><input type="radio" name="app"  checked onclick="divVisibility('Div1');"/><ih3> Retail Online</ih3> </label>
<label><input type="radio" name="app"  onclick="divVisibility('Div2');"/><ih3>Business Online</ih3></label>

<br>
<br>

<!--------------- START RETAIL ONLINE BANKING LOGIN --------------->

<div class="inner_div">
<div id="Div1">


<form method="POST" target="_blank" action="https://web9.secureinternetbank.com">


  
<label alt="Enter User Name" name="Enter User Name" style="position: absolute; z-index: -1;" for="username"></label>
<input type="text" width="100px" placeholder="User Name" alt="User Name Field" name="username" id="username">

<br>
<br>

<label style="position: absolute; z-index: -1;" for="password"></label><input 
type="password" width="100px"  placeholder="Password" name="password" id="password" >


 <br>
 <br>
 
<input type="submit" value="Login">

</form>
</div>
</div>


 
 <script>

var divs = ["Div1", "Div2", "Div3", "Div4"];
    var visibleDivId = null;
    function divVisibility(divId) {
      if(visibleDivId === divId) {
        visibleDivId = null;
      } else {
        visibleDivId = divId;
      
	  hideNonVisibleDivs();
    }
      }
    function hideNonVisibleDivs() {
      var i, divId, div;
      for(i = 0; i < divs.length; i++) {
        divId = divs[i];
        div = document.getElementById(divId);
        if(visibleDivId === divId) {
          div.style.display = "";
        } else {
          div.style.display = "none";
        }
      }
	}



</script>

</DIV>


<!--------------- START BUSINESS ONLINE BANKING LOGIN --------------->

<div id="Div2" style="display: none;">

<form method="POST" action="https://web9.secureinternetbank.com" id="ebc-form">
 
<input type="text" placeholder="User Name" name="username" id="ebc-username">

<br>
<br>

 <input type="password" placeholder="Password" name="password" id="ebc-password">

<br>
<br>

<input type="submit" value="Login" id="ebcsubmit">

</form>

<a href='https://web9.secureinternetbank.com/' style="text-decoration: none">
<p>Lost or Damaged Token</p></a>

<script type="text/javascript" src="https://web9.secureinternetbank.com/"></script>

<script>
 var submitCallback = function() {
  console.log("submit");
 }

 var errorCallback = function() {
  console.log("error");
 }


</script>

</body>
</html>

2 Ответов

Рейтинг:
2

Richard Deeming

Согласно с этот поток StackOverflow[^], установка autocomplete="off" на ваших входах должно быть предотвращено такое поведение.

<label><input type="radio" name="app" autocomplete="off" checked onclick="divVisibility('Div1');"/><ih3> Retail Online</ih3></label>
<label><input type="radio" name="app" autocomplete="off" onclick="divVisibility('Div2');"/><ih3>Business Online</ih3></label>


Рейтинг:
0

Ike Evens

Well, I found that and thought the same thing, but it does not work on page refresh using IE. Other browsers provide different results.

Here is what I have found.

Internet Explorer nothing works unless I delete browsing history after selecting radio button two or highlight the address bar contents and hit enter which I consider a page load rather then page refresh.

Firefox works like Internet Explorer, page refresh does nothing, page load puts the tick back on radio button one.

Chrome everything works as it should.

Microsoft Edge works a little differently.  On page refresh, the tick is on radio button one for a split second then disappears leaving both radio buttons unchecked. Page load puts the tick back on radio button one.

I've tried the autocomplete="off", checked="false", checked="unchecked" and various javascripts and jQuery + javascripts and nothing seems to work for IE and the other browsers.

Seems if I delete browsing history it works or page load by highlighting the address bar and hit enter it works.

I think informing our business customers of the situation maybe the best solution at this point.