首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用眼球更改输入文本框的值

用眼球更改输入文本框的值
EN

Stack Overflow用户
提问于 2022-11-23 14:40:13
回答 1查看 29关注 0票数 0

我创建了两个属性,一个带有蒙面值,另一个带有我的网页的原始值。目前,当我提交表单时,我有一个蒙面值,可以用眼球斜线显示。当我点击眼球时,我希望显示原始值,并在单击时再次蒙住它。没有一项在线研究能解释这一点,他们只关注我不需要的密码。

index.cshtml.cs

代码语言:javascript
复制
// Properties
public ResidencyCheckResult CheckResult { get; set; }
public string OutputSSN { get => CheckResult.SSNumber; set => CheckResult.SSNumber = value; }
public string OutputSSNMasked { get; set; }

// Constructors(Parameters)
public IndexModel(Assess50Context context)
    {
        _context = context;
        CheckResult = new ResidencyCheckResult();
    }
    
// Methods(Parameters)
public async Task<IActionResult> OnPostSubmit()
    {
        using HttpClient client = new HttpClient();
        ResidencyCheckClient checkClient = new ResidencyCheckClient();
        await checkClient.OpenAsync();
    
        ResidencyCheckCriteria checkCriteria = new ResidencyCheckCriteria() 
            {
            };
    
        ResidencyCheckResult checkResult = await checkClient.ValidateFloridaResidencyAsync(checkCriteria);
        OutputSSN = checkResult.SSNumber;
        OutputSSNMasked = OutputSSN;
    
        OutputSSN = $"{SubstringCheck(OutputSSN, 3)}-{SubstringCheck(OutputSSN, 3, 2)}-{SubstringCheck(OutputSSN, 5, 4)}";
        OutputSSNMasked = $"{SubstringCheck(OutputSSNMasked, 3)}-{SubstringCheck(OutputSSNMasked, 3, 2)}-{SubstringCheck(OutputSSNMasked.Replace(OutputSSNMasked, "XXXX"), 5, 4)}";
    
        await checkClient.CloseAsync();
        return Page();
    }
    
// methods to prevent causing argument out of range exceptions on substring calls
public string SubstringCheck(string s, int length)
    {
        int len = s.Length;

        if (len > length)
        {
            len = length;
        }
        return s.Substring(0, len);
    }

public string SubstringCheck(string s, int b, int length)
    {
        int len = s.Length;

        if (len <= b)
        {
            return s;
        }

        len -= b;  // b < len

        if (len > length)
        {
            len = length;
        }
        return s.Substring(b, len);
    }

index.cshtml

代码语言:javascript
复制
<form class="mt-0" method="post">
    <button class="btn btn-outline-dark col-1 offset-5" type="submit" id="SubmitBtn" name="SubmitBtn" value="Submit" disabled asp-page-handler="Submit">Submit</button>
    <input class="form-control" title="Social security number" readonly asp-for="OutputSSNMasked">
    <i class="fa fa-eye-slash" id="ToggleOutputSSN" style="cursor: pointer;"></i>
</form>

@section Scripts {
<script>
    const toggleOutputSSN = document.querySelector('#ToggleOutputSSN');
    const outputSSNMasked = document.querySelector('#OutputSSN');

    toggleOutputSSN.addEventListener('click', function (e) {
    const type = outputSSNMasked.getAttribute('type') === 'text' ? 'password' : 'text';
    outputSSNMasked.setAttribute('type', type);
    this.classList.toggle('fa-eye');
    });
});
</script>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 15:21:57

试试这样的东西。

代码语言:javascript
复制
const toggleOutputSSN = document.querySelector('#ToggleOutputSSN');
const outputSSNMasked = document.querySelector('#OutputSSNMasked');

toggleOutputSSN.addEventListener('click', function(e) {
  const parts = outputSSNMasked.dataset.ssn.split('-');
  if(!outputSSNMasked.value.endsWith('XXXX')) {
    parts[2] = 'XXXX';
  }
  outputSSNMasked.value = parts.join('-');
  const iTag = this.querySelector('i');
  iTag.classList.toggle('fa-eye');
});
代码语言:javascript
复制
.masked-input {
  margin: 20px;
  width: 200px !important;
}
代码语言:javascript
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" />

<div class="input-group masked-input">
  <input type="text" 
    id="OutputSSNMasked" 
    class="form-control" 
    title="Social security number" 
    aria-label="Social security number"
    data-ssn="115-67-0707"
    value="115-67-0707">
  <span id="ToggleOutputSSN" class="input-group-text" style="cursor: pointer;">
    <i class="far fa-eye-slash"></i>
  </span>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74548580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档