Следующий код может помочь вам,
#include <atlconv.h>
#include <atlstr.h>
#define ASSERT ATLASSERT
int main()
{
const CStringW unicode1 = L"\x0391 and \x03A9"; // 'Alpha' and 'Omega'
const CStringA utf8 = CW2A(unicode1, CP_UTF8);
ASSERT(utf8.GetLength() > unicode1.GetLength());
const CStringW unicode2 = CA2W(utf8, CP_UTF8);
ASSERT(unicode1 == unicode2);
}
Вы можете использовать атрибуты объекта события и данных:
function ShowHide(input) {
// If you don't want the form to refresh the page, use preventDefault
event.preventDefault();
// Using dataset you can access the data attributes from the button that fired the event
document.getElementById(event.target.dataset.divid).style.display = "block";
}
<div id="main">
<form >
<fieldset>
<button onclick="ShowHide()" data-divid="1">Area 1</button> <!- Add data attributes to your buttons ->
<button onclick="ShowHide()" data-divid="2">Area 2</button>
</fieldset>
</form>
</div>
<div id="1" style="display:none">
Area 1
</div>
<div id="2" style="display:none">
area 2
</div>
Чтобы предотвратить обновление страницы при отправке формы, вам нужно будет использовать event.preventDefault();
. Я считаю, что то, что вы пытаетесь достичь, состоит в следующем:
<div id="main">
<form>
<fieldset>
<button onclick="showHide('myDiv1')">Area 1</button>
<button onclick="showHide('myDiv2')">Area 2</button>
</fieldset>
</form>
</div>
<div id="myDiv1" style="display:none">
Area 1
</div>
<div id="myDiv2" style="display:none">
Area 2
</div>
<script>
function showHide(elemId) {
event.preventDefault();
var x = document.getElementById(elemId);
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>